尽管utf8,数据库中的虚假字符

时间:2013-07-15 12:18:58

标签: database utf-8 character-encoding innodb

我有一个大的html表单,提交给脚本然后将数据输入数据库。

由于某种原因,我输入的数据库中的字符不正确。 将ä转变为ä

文件如下:

page_varaa.php ,其中包含 form_haeverkkotunnus_data.php 表单,或者如果提交表单,则会执行数据库操作。

这两个php页面都编码为没有BOM的UTF-8,有一个

header('Content-Type: text/html; charset=utf-8');

在页面顶部。表本身有整理

utf8_unicode_ci 

在index.php页面上我有

<head>
    <meta charset="utf-8">

我正在使用msqli并将这样的数据输入数据库:

$stmt = $db->prepare($sql);
$stmt->execute()

数据库引擎是innoDB

我的数据库有一个utf8_general_ci的服务器连接合作

尽管如此,我仍然在数据库中有虚假的字符。我在这里缺少什么?

非常感谢

修改

我也设置表utf8_general_ci,没有改变任何东西:(

1 个答案:

答案 0 :(得分:0)

非常感谢cypherabe,我没有使用PDO,但你的评论给了我正确的方向,我必须为mysqli设置charset,就像这里一样;

http://php.net/manual/en/mysqli.set-charset.php