Во-первых, убедитесь, что ваша таблица MySQL использует UTF-8 в качестве кодировки.Если это так, это будет выглядеть следующим образом:
mysql> SHOW CREATE TABLE Users (
...
) ENGINE=InnoDB AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 |
Далее убедитесь, что на вашей HTML-странице установлено отображение UTF-8:
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
</head>
....
</html>
Тогда это должно работать.
РЕДАКТИРОВАТЬ: я специально не говорил о сопоставлении, потому что я думал, что это уже рассматривалось, но для блага всех, позвольте мне добавить еще несколько к этому ответу.
Вы утверждаете,
В сопоставлении таблиц MySQL у меня установлена кодировка UTF-8 ...
Сравнение таблиц - это не то же самое, что и кодировка.
Сортировка - это процесс автоматической попытки преобразования одного набора символов в другой ДЛЯ ЦЕЛЕЙ ЗАПРОСА .Например, если у вас есть кодировка latin1 и сопоставление UTF-8, и вы делаете что-то вроде SELECT * FROM foo WHERE bar LIKE '% -%';(UTF-8 U + 2014) на таблице с набором символов latin1, которые соответствуют либо L + 0151 или U + 2014.
Не так уж случайно ... если вы вывели этот латинский кодированный символ на веб-страницу в кодировке UTF-8, вы получите следующее:
Это «тест»€.
Это похоже на результат вашей проблемы.Вот HTML-код для его дублирования:
<?php
$string = "This is a “test”.";
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf8"/>
</head>
<body>
<p><?php echo $string; ?></p>
</body>
</html>
Убедитесь, что вы сохранили этот файл в latin1 ...
Чтобы увидеть, какой кодировке установлена ваша таблица, выполните этот запрос:
SELECT CCSA.character_set_name, TABLE_COLLATION FROM information_schema.`TABLES` T,
information_schema.`COLLATION_CHARACTER_SET_APPLICABILITY` CCSA
WHERE CCSA.collation_name = T.table_collation
AND T.table_schema = "database"
AND T.table_name = "table";
только правильные результаты для вашего использования (если вы не используете несколько неанглийских языков):
+--------------------+-----------------+
| character_set_name | TABLE_COLLATION |
+--------------------+-----------------+
| utf8 | utf8_general_ci |
+--------------------+-----------------+
Спасибо за голоса; -)