Некоторые символы не отображаются при использовании UTF-8 - PullRequest
0 голосов
/ 02 апреля 2011

У меня проблемы с получением символов из славянских языков, например Š. Когда они включены в выходные данные, они отображаются в виде символа вопросительного знака с ромбом.

Для подключения к моей базе данных установлено utf8 с использованием:

@mysql_query("SET NAMES 'utf8_unicode_ci' COLLATE 'utf8_unicode_ci'");

Большинство многоязычных символов появляются на экране. Я не уверен, что правильно настроил кодировку. Кажется, работает на венгерском, испанском, португальском, просто не на славянском языке!

Где может быть проблема?

Поле содержит множество возможных символов, что делает невозможным выбор конкретной кодировки не-utf8, например, latin2.

Это совершенно новая база данных, созданная с нуля. phpMyAdmin показывает символы на экране, поэтому я думаю, что проблема не в MySQL, а в PHP. Однако я настроил правильные объявления utf8.

Ответы [ 2 ]

3 голосов
/ 02 сентября 2012

Потратил часы, чтобы проверить и проверить все возможные области.Наконец, я нашел решение здесь:

UTF-8 на всем пути до Верхний ответ помогает.

Моей проблемой было «Доступ к данным».исправить с помощью

$set_utf = mysql_query("SET NAMES 'utf8' ") 
          or die(mysql_error());      

Надеюсь, это кому-то тоже поможет.

0 голосов
/ 02 апреля 2011

Попробуйте заменить 'utf8_unicode_ci' на 'utf8_general_ci'.

например. Я использую

@mysql_query("SET NAMES 'utf8_general_ci' COLLATE 'utf8_general_ci'");

для отображения определенных символов на моем сайте с сербского латиницы, например šđčćž и сербской кириллицы (абвгдђежзијклљмнњопрстћуфхцчџш) Я не знаю, вызывает ли это вашу проблему, потому что я никогда не использовал utf8_unicode_ci.

Поместите больше деталей и часть кода в свой оригинальный вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...