希腊字符没有正确地出现在数据库中 - html,php,mysqli

时间:2015-05-25 20:38:38

标签: php html mysqli utf-8 phpmyadmin

我的数据库已整理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文件吗?

1 个答案:

答案 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编码的。 您应该创建一个批处理脚本;

  1. 选择表格中的所有数据
  2. 使用mb_convert_encoding
  3. 将其转换为utf-8
  4. 并更新旧数据
  5. 修复您的数据。