Об этом уже спрашивали, но озабоченность другого автора была больше связана с оригинальной кодировкой документа.
У меня есть база данных MySQL, содержащая текст на китайском языке. Сортировка, которую я использую для этих полей: utf8_unicode_ci
. Используя phpMyAdmin и просматривая базу данных, текст на китайском языке выглядит так, как должен. Однако когда я пытаюсь отобразить этот текст на веб-странице, я получаю ????? на своем месте. Вот мой код:
<html>
<?php
header('Content-Type: text/html; charset=UTF-8');
?>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<?php
// Code opening database and retrieving fields and such...
Что-то мне не хватает? Я также пытался переместить вызов PHP header()
выше тега <html>
, но это тоже не работает.
РЕДАКТИРОВАТЬ: Вот код базы данных:
$con = mysql_connect("localhost", "name", "pass") or die('Sorry, could not connect to database server');
mysql_select_db("database_name", $con) or die('Sorry, could not connect to database');
$query = "SELECT id,field1,field2 FROM table1 ORDER BY id ASC";
$result = mysql_query($query) or die('Sorry, could not get recipes at this time ');
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$id = $row['id'];
$var1= $row['field1'];
$var2= $row['field2'];
echo"ID:$id The contents are $var1 and $var2.<br><br>\n";
}
ОБНОВЛЕНИЕ: Итак, я решил проблему с чтением сохраненных китайских символов как UTF-8 с использованием строки mysql_set_charset('utf8', $con);
, но я обнаружил, что когда я хочу добавить в эту базу данных, китайский текст отображается как ????? снова. Например, если я сохраняю строку китайских символов в качестве переменной
$chinese = "炒猪肉与蔬菜";
echo "$chinese<br>";
Это показывает ????? снова. Любые подсказки?
Спасибо.