Проблемы с кодировкой в базе данных
Не так давно я делал один сайт, и мне необходимо было сделать кодировку в базе данных UTF-8. Так я и сделал. Далее я поставил кодировку на сайте UTF-8. Всё казалось бы нормально, но при выборке данных из базы, они шли не в UTF-8, а в windows-1251. Разумеется, всё было в иероглифах. Я подумал, что решение этой проблемы с кодировкой в базе данных, необходимо Вам знать. И как раз об этом чуть ниже.
Если Вы используется UTF-8, то сразу после подключения необходимо выполнить всего лишь один запрос, но который исправит эту ошибку на корню. Вот он:
SET NAMES "utf8"
Он необходим, поскольку по умолчанию данные идут в кодировке windows-1251. И если Вам нужна windows-1251, то можете ничего не писать. Но если Вы используете UTF-8 (а я рекомендую использовать всё-таки эту кодировку), то обязательно после подключения выполните этот несложный запрос. Тогда проблемы с кодировкой при выборке из базы данных отпадут.
-
- Михаил Русаков
Комментарии (14):
Вот спасибо! А я с iconv() мучился...
Ответить
что-то случилось на сайте. теперь после добавления комментария страничка не перегружается, а подвисает...
Ответить
Да я это тоже заметил, буду искать проблему. Вдобавок, мне не приходит уведомление на e-mail, поэтому могут быть задержки с ответами.
Ответить
Всё починил.
Ответить
Помогите изменить кодировку моей базы данных на Денвере: был готовый скрипт на Win 1251, соответственно была создана вся база в этой кодировке. Потом пришла необходимость перевести все в utf8, все файлы скрипта перевел на новую кодировку, каждый отдельно, открывая и пересохраняя (может есть другой метод?), и в базе все поля во всех таблицах поодному переведены в utf8, а вся база осталась в старой win 1251, и нигде нет режима редактирования "сравнения". Хотел приложить скриншот ( база на моем домашнем localhost).
Ответить
Просто измените кодировку всех полей и всех таблиц. А при подключении к базе данных посылайте такой запрос (сразу после подключения): SET NAMES 'utf8'
Ответить
Пишут, что предпочтительней для установки кодировки использовать команду $mysqli->set_charset("utf8"); http://www.php.net/manual/ru/mysqlinfo.concepts.charset.php
Ответить
Возникла проблема, бьюсь вторую неделю. Сайт и админка на джумле отображается отлично. В поисковиках google и yandex тоже. но заказчику понадобилось продвижение в Mail.ru и оказалось, что в поисковике mail отображается название сайта в неправильной кодировке. база и сайт в utf, в htaccess тоже прописано. если поможет, то в поиске "niagara казань"
Ответить
По данному запросу в mail.ru никаких проблем с кодировкой не увидел.
Ответить
самое удивительное, что решилось путем обращения в тех поддержку mail.ru . Нечасто так оперативно реагируют и исправляют. прошу прощения за беспокойство. удачи
Ответить
Я нашел на php.net вот такое решение //Соеденяемся с базой данных $db = mysql_connect($dblocation, $dbuser, $dbpasswd); // Установка кодировки по умолчанию для текущего соединения if (!mysql_set_charset('utf8', $db)) { echo "Ошибка присвоения кодировки utf-8\n"; exit; }
Ответить
После перекодировки из ANSI в UTF-8 файла. Когда создаю сесию то возникает придуприждение что заполовки уже были отправлени. хотя после подключения к БД я вызывал SET NAMES "utf8". Но если файл кодирован в ANSI, то проблемы нет. Почему???
Ответить
используйте utf-8 без bom
Ответить
Не люблю надоедать, но если использовать utf-8 без bom. То в результате данные из сесии выводятся в виде набора символов (абри-кадабри). Как ето исправить?
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.