zec*_*ude 3 php mysql utf-8 mojibake
我将以下字符插入我的DB:汉字/汉字
这是插入字符的页面上的元标记:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
Run Code Online (Sandbox Code Playgroud)
我已经更改了表中包含字符为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();
Run Code Online (Sandbox Code Playgroud)
与数据库的连接是否也是UTF-8编码的?
试一试:在连接到mysql数据库之后,运行以下查询.
SET NAMES utf8;
Run Code Online (Sandbox Code Playgroud)
这应该可以解决问题(参见MySQL doc).(是的,每次连接都必须这样做.)
BTW:不要只依赖<meta>-Tag,发送相应的HTTP头.