我的数据库已整理utf8-general-ci
[我也尝试了greek-general-ci
,结果更糟糕]。
当我直接通过phpMyAdmin插入带有希腊语值的行时,它会出现在我的html页面上,如下所示:'??????'。
当我通过我的html表单插入一行时,它在html-outcome页面上正确显示,但在phpMyAdmin上它看起来像这样:'ΜαÏία。'。
我可以处理这个,因为我只是为大学项目做这个,所以我可以通过我的html表单插入所有行,但我真的很好奇为什么会发生这种情况。
我的html文件
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
当我在我的php文件上header('Content-Type: text/html; charset=utf-8');
时,它与我的页面严重混淆,所以我不能包含它。还试过包括$mysqli->set_charset("utf8");
,但只出现错误。
我还检查了Greek characters encoding works in HTML but not in PHP,但我们没有遇到同样的问题。我应该更改httpd.conf文件吗?
答案 0 :(得分:0)
首先检查你的表格整理。它与数据库排序规则无关。 你的表格整理也应该是utf8-general-ci。
<? header('Content-Type: text/html; charset=utf-8');
$mysqli->set_charset("utf8"); ?>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
当所有这四个设置都处于活动状态时; 您应该能够成功插入,更新或读取 UTF-8 INSERTED 数据
我的猜测是你的问题,因为你的旧数据不是utf-8编码的。 您应该创建一个批处理脚本;
mb_convert_encoding
修复您的数据。