Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Проблемы с кодировкой БД (MySQL)
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » Проблемы с кодировкой БД (MySQL)

Страниц (1): [1]
 

1. SkaN - 09 Марта, 2012 - 17:51:57 - перейти к сообщению
Прошу прощения за не сильно содержательное название, но там много описывать для одной строки. К делу:
Есть БД в utf8_general_ci, таблицы в ней такие же. Скрипты, которые взаимодействуют со всем этим добром аналогично в UTF8, текст набирается и отправляется со страницы в этой же кодировке. В базу текст попадает уже в таком виде: Коди&Ntilde...
У меня такое дело уже второй раз. До этого так и не разобрался.
Еще что странно, команда date |file -i %filename% выводит us-ascii. Напрягает, но сохранял скрипты я точно в UTF8
2. SkaN - 10 Марта, 2012 - 14:16:15 - перейти к сообщению
Если попробовать через PMA текст добавить, то он добавляется знаками вопроса
3. Джур - 10 Марта, 2012 - 19:43:42 - перейти к сообщению
Судя по вопросикам, у вас подключение к базе на языке "западных варваров" происходит, тут поможет знаменитая:
CODE (sql):
скопировать код в буфер обмена
  1. SET NAMES <имя кодировки>

А скрипты, судя по результату, кидают в базу не строку в чистом виде, а предварительно превращают ее в html сущность. Причем какую-то странную. Или это форум ваш топик исковеркал?
4. SkaN - 10 Марта, 2012 - 21:11:09 - перейти к сообщению
В HTML сущность они ее превращают, я сначала кинул тот вариант, который отображался в браузере + этот. А потом заглянул в "Исходный код" страницы и увидел, что там такие символы. Так что в базе хранятся и выводятся строки в таком виде
5. SkaN - 11 Марта, 2012 - 12:38:58 - перейти к сообщению
Извините меня, идиота. Я перепутал htmlentities и htmlspecialchars. Если экранировать строку через htmlspecialchars, то весь текст в БД идет вопросиками
(Добавление)
Уж точно идиот. Если бы я изначально думал мозгами (не путал бы функции), то проблемы бы не было. Убрал добавленную строчку
PHP:
скопировать код в буфер обмена
  1. $mysqli->query("SET NAMES 'utf8'")

и кириллица теперь нормально отображается

 

Powered by ExBB FM 1.0 RC1