Mysql Charset установлен в шапке, результаты различаются на страницах - PullRequest
0 голосов
/ 02 августа 2011

Я создаю базу данных Mysql, в которой хранятся данные о владельцах и заводчиках пони, а также сведения о самих животных.Информация обновляется и просматривается через PHP.Как часть этого, у меня есть страницы, где перечислены контакты, и другие страницы, где контакты могут быть назначены (через раскрывающийся список) животному как владельцу или заводчику.Соединение с базой данных устанавливается в заголовке (вызывается функцией) и закрывается в конце каждого запроса.

Я заметил, что некоторые символы (например, É) не отображались должным образом (�) в раскрывающихся спискахконтакты, но были в порядке в списке страниц.Изучив предыдущие квесты, изложенные здесь ( Специальные символы в PHP / MySQL ), я установил параметры сортировки таблицы в utf8_bin и подключился к БД через

<?php
$con = mysql_connect("localhost", "user", "pass");
mysql_select_db("db", $con);
mysql_set_charset('utf8',$con);
?>

. Это решило проблему с раскрывающимся списком.отлично - но страницы списка теперь вызывают проблемы.(É теперь Ã ‰).Мой браузер был настроен на Western ISO-8859-1, но даже изменение этого на UTF-8 не помогло.Вывод

$charset = mysql_client_encoding($con);
echo "The current character set is: $charset\n";

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

Любой совет с благодарностью!

(Ps в ожидании: язык будет в основном английским, но с некоторым ирландским гэльским, и, возможно, с французским и немецким языками тоже. Я также пробовал все вышеописанное с кодировкой Latin1.)

РЕДАКТИРОВАТЬ:

Чтобы решить проблему:

  • установить кодировку для соединения ($ con)
  • установить сопоставление дляданные в таблице - по столбцу , по таблице недостаточно
  • Обязательно объявите кодировку HTML в моем заголовке через метатег.

1 Ответ

0 голосов
/ 02 августа 2011

Я подозреваю, что вы отображаете код отображения utf8-кодирует HTML-код. Уберите, что utf8_encode звонит туда.

Возможно, вам также не хватает объявления кодировки в самих HTML-страницах, что необходимо для того, чтобы сообщить браузеру, что на странице есть определенный набор символов.

...