Database 尽管有utf8,数据库中仍存在伪字符

Database 尽管有utf8,数据库中仍存在伪字符,database,utf-8,character-encoding,innodb,Database,Utf 8,Character Encoding,Innodb,我有一个大的html表单,它被提交到一个脚本中,然后数据被输入数据库 由于某些原因,我在数据库中输入的字符不正确它将ä变成Ã 文件如下: page_varaa.php其中包含表单form_haeverkkotunnus_data.php或者,如果表单已提交,它将执行数据库操作 两个php页面都编码为UTF-8,没有BOM,具有 header('Content-Type: text/html; charset=utf-8'); 在页面顶部。表本身具有排序规则 utf8_unicode_ci

我有一个大的html表单,它被提交到一个脚本中,然后数据被输入数据库

由于某些原因,我在数据库中输入的字符不正确它将ä变成
Ã

文件如下:

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

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

header('Content-Type: text/html; charset=utf-8');
在页面顶部。表本身具有排序规则

utf8_unicode_ci 
在index.php页面上,我看到了

<head>
    <meta charset="utf-8">
数据库引擎是innoDB

我的数据库有一个utf8\u general\u ci的服务器连接

尽管如此,我的数据库中仍然有伪造的字符。我错过了什么

多谢各位

编辑:


我尝试设置表utf8\u general\u ci,也没有更改任何内容:(

非常感谢您的cypherabe,我没有使用PDO,但您的评论给了我正确的方向,我必须为mysqli设置字符集,如下所示


您还需要将与数据库的连接设置为使用utf8。有关详细信息,请参阅此答案:
$stmt = $db->prepare($sql);
$stmt->execute()