UTF-8 Головные боли Доступ к mySQL / PHP - PullRequest
0 голосов
/ 05 декабря 2011

Показывает создание базы данных MySQL

CREATE DATABASE `foo` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci */ 

Сортировка полей mySQL показывает utf8_unicode_ci.

В экспорте Access указана кодовая страница Unicode (UTF-8).

.Запрос на импорт:

LOAD DATA LOCAL INFILE '/home/foo/Snapshot/tblImages.txt' INTO TABLE `tblImages` CHARACTER SET utf8 FIELDS OPTIONALLY ENCLOSED BY '|' TERMINATED BY ';' LINES TERMINATED BY '\n';

Перед отрисовкой страницы выдает PHP

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

В <head> у меня есть

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Если я открою Access, экспортированTXT-файл в UltraEdit под Windows 7 Я вижу правильные акценты:

Plan d'une propriété située dans la première Municipalité (1000 Dauphine corner St. Philip)

Если язапросить данные в мониторе mySQL под Linux я вижу:

Plan dâune proprià © tà © e dans la premiíre Municipalitéé (1000 Dauphine corner St. Philip)

И когда я отображаю запрос в браузере, я вижу:

Plan d? Unpripri? T?situ? e dans la premi? re Municipalit?(1000 Дофин, угол Святого Филиппа)

Если я предвожу другие запросы с помощью:

SET NAMES utf8;

Затем в браузерах Webkit Я вижу:

utf-8 issue

Что мне здесь не хватает?

1 Ответ

1 голос
/ 05 декабря 2011

Проблема была решена путем добавления этих запросов к соединению:

mysql_query("SET collation_connection = utf8_unicode_ci");
mysql_query("SET NAMES utf8;");

И затем вызов utf8_encode(), обертывающий вывод.

Вызов функции не требуется, есливсе заголовки и настройки Content-Type ...?

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