Почему при записи в MySQL отображаются каракули?

Была раньше кодировка сайта UTF-8 Без ВОМ, при отправке через пост данных и запросом в бд о добавлении, в бд добавляются каракули (Текст на Русском).

Сменил таблицы на utf-8 general - не помогло, сменил сайт на ANSI, кодировка бд latin1 - каракули, cp1251 - опять каракули. Как сделать, чтобы сайт остался UTF-8, и чтобы бд нормально воспринимала текст?
  • Вопрос задан
  • 3066 просмотров
Пригласить эксперта
Ответы на вопрос 7
после mysql_connect
выполняйте запросы
SET NAMES 'utf8';
SET collation_connection = "utf8_unicode_ci";


И убедитесь, что база, таблицы и сам сервер в одной кодировке.
Ответ написан
samoilenkoevgeniy
@samoilenkoevgeniy
Lead Full-Stack Web Developer
в .htaccess пропишите - AddDefaultCharset utf8
в head страницы пропишите -
<meta http-equiv="Content-Type"  content="text/html" charset="UTF-8" />


Во всех своих файлах в т.ч. js проверьте кодировку, чтобы везде стояла utf-8
Зайдите в phpmyadmin и проверьте, чтобы там тоже стояла кодировка urf-8
В месте подключения к бд сделайте запрос
mysql_query("SET NAMES utf8");
В панели управления хостингом(какой, кстати, у вас хостинг?) установите кодировку сайта UTF-8
Если вы все это сделаете так (именно пройдетесь по всем пунктам, проверите) Я вам гарантирую - проблемы с кодировкой уйдут.
Ответ написан
@Nc_Soft
Почему всё в ютф8 не сделать?
Ответ написан
greabock
@greabock
Могу
Попробуйте копнуть в сторону mysql_set_charset() или ее аналога для Вашего драйвера соединения.
Ответ написан
zooks
@zooks
Frontend и Django
Попробуй создать б/д сразу в UTF-8 с сопоставлением utf8_general_ci.

Также настрой кодировку отдаваемых сервером документов: AddDefaultCharset utf-8

Если сервер локальный, то отредактировать my.cnf / my.ini
[mysqld]
character-set-server = utf8
collation-server = utf8_unicode_ci

[client]
default-character-set = utf8
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы