Я создаю базу данных 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 в моем заголовке через метатег.