Интернационализация SQL / PHP / HTML - PullRequest
0 голосов
/ 07 января 2011

Я пытаюсь узнать об интернализации на веб-сайтах, поэтому я вмешиваюсь в файл конфигурации MySQL, параметры сортировки полей и тип набора символов заголовка html. У меня в основном есть форма, где я набираю несколько символов юникода в текстовом поле, сохраняю их в базе данных, а затем выводю обратно в браузер. Первый сценарий: HTML => utf8 MySQL => UTF8, все работает нормально. Однако, когда я просматривал базу данных из PhPMyAdmin, в поле были странные символы. Второй сценарий: я настроил VARCHAR в базе данных на Latin1, выбрав сортировку swedish_ci. HTML остался utf8. Я ввел строку Unicode в форме. Тем не менее, браузер по-прежнему отображает правильные символы, которые я ввел !!!

Чтобы мне было проще понять, я скачал базу данных mysql world, которая представляет собой базу данных всех стран и городов мира. Таблицы кодируются латиницей1. Когда я пытаюсь отобразить их в формате utf8, он отображает странные символы для неанглийских символов. Это работает нормально, когда мой набор символов HTML-8591-1

1 Ответ

0 голосов
/ 07 января 2011

Если вы используете utf-8, вы всегда должны использовать utf-8 для HTML, utf8 charset в MySQL и utf8_general_ci или utf8_unicode_ci для сопоставления MySQL.И ваш php документ должен быть сохранен как utf-8 без спецификации.

...