MySQL и PHP Unicode проблемы

У меня есть следующий файл UTF-8, экспортированный из файла доступа Microsoft

http://www.yousendit.com/download/TTZtT214SU84Q1FLSkE9PQ

Я убедился, что моя база данных mysql имеет статус utf8; Команда для клиента и сервера. Я вставляю указанный выше файл в свою базу данных с помощью следующей команды:

LOAD DATA LOCAL INFILE 'tblAuction1.txt' INTO TABLE Auctions FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\';

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

http://www.nomorepasting.com/getpaste.php?pasteid=22622

Однако полученный HTML-код отображается:

http://www.nomorepasting.com/getpaste.php?pasteid=22617

Который отображается как

Листинг

1.00 
<\/OBJECT>
');\n\t\t<\/SCRIPT>\n\t\t

в браузере

Код, который я использую, чтобы показать это:

http://www.nomorepasting.com/getpaste.php?pasteid=22618

который работал нормально, прежде чем я изменил кодировку.

В качестве побочного вопроса мне интересно, почему переход от разделителя табуляции к разделению точкой с запятой и вложение полей приведет к уменьшению размера экспортируемого файла вдвое. Символ табуляции - это один символ, такой же как; символ, а добавление кавычек должно заключаться в увеличении размера?

10.12.2008 12:32:42
1 ОТВЕТ
РЕШЕНИЕ

В зависимости от конфигурации веб-сервера вам может понадобиться явно указать кодировку «text / html; charset = UTF-8», используя header():

header('Content-Type: text/html; charset=UTF-8');

Этого должно быть достаточно для вашей конкретной проблемы, но - в случае, если вы также намереваетесь манипулировать строками - обратите внимание, что PHP содержит много функций, которые небезопасно использовать с многобайтовыми символами: вы должны по крайней мере правильно настроить расширение mbstring .

У меня также есть этот шпаргалка в моих закладках, я думаю, что это все еще актуально.

1
10.12.2008 13:58:49
Это, похоже, ничего не исправило, возможно, это проблема с базой данных? Кажется, это проблема с html, предназначенным для передачи в document.write, и тегом, который где-то закрыт.
user1253538 10.12.2008 14:10:51
Незакрытый тег ортогонален кодировке UTF-8 ... Хотя у вас были проблемы с отображением символов, не входящих в ASCII.
Luca Tettamanti 11.12.2008 13:12:29