У меня неправильно отображаются буквы кириллицы, в частности русского алфавита. Файлы с кодом php имеют кодировку UTF-8 без BOM (так как используется функция PHP: <?php session_start();?> , иначе файл отсылает (если просто UTF-8) спец символы и ф-ия выдаёт ошибку: "Заголовки уже отправлены - поздняк метаться". Сам файл передаёт кодировку HTML: <meta charset="utf-8"> В базе данных текст хранится в кодировке utf8mb4_unicode_ci Но при выводе этих значений выводится следующее: см. вложенный скрин Что можно поменять или добавить или убрать, чтобы вместо "иероглифов" были нормальные русские буквы?
не-не utf8mb4 правильнее, чем utf8 У меня были обрезания и глюки на emoji на utf8_*. Нагуглил, что надо юзать utf8mb4 для правильного utf так-то
Я добавил в код и получилось PHP: if (!mysqli_set_charset($connection, "utf8")) { printf("Ошибка при загрузке набора символов utf8: %s\n", mysqli_error($connection)); exit(); } else { printf("Текущий набор символов: %s\n", mysqli_character_set_name($connection)); }
чтобы кракозябр не было, нужно чтобы кодировка одинаковая была везде: 1. на странице, на которой набирается текст 2. при подключении к бд при записи 3. в самом поле в таблице в бд 4. при подключении к бд при чтении 5. при выводе на страницу 6. в заголовках сервера при ответе на запрос браузера 7. на самой странице при попадании в браузер не должно быть обозначено другой кодировки, т.е. тут тоже надо опять продублировать 8. в браузере не должна быть выставлена принудительно другая кодировка во тогда да, норм, точняк всё будет хорошо т.е. очевидно, что тут много где можно налажать но выглядеть будет одинаково
При записи китайских иероглифов в кириллицу будут кракозябры. Но при извлечении корректно записанных данных достаточно SET NAMES