为什么我不能在我的mysql数据库中查看外语字符?

时间:2010-03-21 21:55:05

标签: php mysql utf-8 mojibake

我将以下字符插入到我的数据库中:汉字/汉字

这是插入字符的页面上的元标记:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

我更改了表格中保存字符为 utf8_unicode_ci

的所有列

外国人角色在DB中显示如下:汉 - /æ¼¢ -

当我使用sql语句在页面上显示这些外来字符时,它们会再次正确显示为:汉字/汉字

我猜我的数据库中有一些设置不正确,因为它正确存储,但无法正确显示。

如何才能使外语字符在我的数据库中正确显示?

编辑:这是我的插页:

$sql = 'INSERT INTO orders (foreign_characters)
        VALUES (?)';

$stmt = $conn->stmt_init();
$stmt->bind_param('s', $_SESSION['foreign_characters']);
$inserted = $stmt->execute();

1 个答案:

答案 0 :(得分:6)

与数据库的连接是否也是UTF-8编码的?

尝试一下:在连接到mysql数据库之后,运行以下查询。

SET NAMES utf8;

这应该可以解决问题(参见MySQL doc)。 (是的,每次连接都必须这样做。)

BTW:不要只依赖<meta> - 标签,发送相应的HTTP标头。