У меня есть база данных, в которой хранятся некоторые необычные символы, введенные посетителями: например, é, á, í и ú.
Моя страница HTML 5 отображается? вместо персонажа, когда я использую
<meta charset="utf-8">
но когда я использую
<meta charset="ISO-8859-1">
символы отображаются правильно.
Однако, когда я указываю последнюю кодировку, валидатор W3C выдает сообщение об ошибке:
Ошибка: неверное значение ISO-8859-1 для атрибута charset в элементе meta:
изо-8859-1
Есть ли способ получить правильное отображение символов и получить подтверждение W3C, или я ожидаю слишком многого?
С уважением
одевать
Предложенный «уже отвеченный» вопрос неприменим, потому что: 1) моя версия php 5.4, а не 5.5 (2) я не понимаю ответ, который, кажется, нацелен на людей, которые имеют большую глубину знаний, чем я.
Хорошо, я думаю, что у меня есть ответ сейчас. Спасибо deceze за указание мне на: http://kunststube.net/frontback/
Сначала я проверил базу данных, и для полей установлены параметры сортировки; utf8_general_ci, который я считаю правильным.
Теперь у меня есть:
<meta charset="utf-8">
вверху страницы и соединение с базой данных теперь:
$dbh = new PDO("mysql:host=$hostname;dbname=$dbname; charset=utf8;", $username, $password);
Добавление кодировки там, похоже, решило проблему, и теперь символы отображаются правильно, в то время как страница проходит проверку W3C.
Большое спасибо за помощь.
одевать
Вы ищете специальные символы, часто описываемые как «сущности HTML». В частности, вы ищете HTML-объекты ISO-8859-1. Вы можете отображать каждый из этих символов, как этот, не отказываясь от кодировки UTF-8.
Для отображения «é» используйте é
или же é
Для отображения «á» используйте á
или же á
Для отображения «í» используйте í
или же í
Для отображения «ú» используйте ú
или же ú
В каждом из этих случаев вы пишете &...;
вместо буквы, включая точку с запятой. Таким образом, чтобы написать слово «éclair» вы бы использовали éclair
,
Для большего количества символов вы можете найти довольно полную ссылку Вот.