希腊字符不正确显示/从数据库- html, php, mysqli


greek characters not appearing correctly to/from database - html, php, mysqli

我的数据库有排序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编码。您应该创建一个批处理脚本;

  1. 从表
  2. 中选择所有数据使用mb_convert_encoding将其转换为utf-8
  3. 和更新的旧数据