我的数据库有排序utf8-general-ci
[我也尝试了greek-general-ci
与较差的结果]。
当我插入一行与希腊值直接通过phpMyAdmin,它出现在我的html页面像这样:'??????'。
当我插入一行通过我的html表单,它正确地出现在html-输出页面,但在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");
,但只出现错误。
我也检查了希腊字符编码在HTML中工作,但不是在PHP中,但我们没有同样的问题。但是,我应该更改httpd.conf文件吗?
首先检查表的排序。它没有链接到数据库排序。您的表排序也应该是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
将其转换为utf-8