阿拉伯字体在线编辑后显示为问号

时间:2012-07-15 06:34:16

标签: php mysql utf-8 phpmyadmin arabic

我使用PHP 5.3,MySQL 5和PHPMyAdmin 3.4创建了一个阿拉伯语网站。

在每一页上,我都使用“utf-8”字符集。我在每个页面上都包含以下行:

http://jsfiddle.net/Hh7mk/

网站离线工作正常(在本地服务器(localhost)上)。甚至在我编辑并将新的阿拉伯文作品插入数据库之后。

问题是网站在线时。所有阿拉伯字体都正确显示,但在我在线编辑或插入新的阿拉伯文书写后,新的文字显示为问号。

我的设置(在线):

  • PHPMyAdmin MySQL连接排序规则:utf8_general_ci。

  • PHPMyAdmin MySQL charset:UTF-8 Unicode(utf8)。

  • 数据库和表格排序:utf8_general_ci。

在连接文件中,我已经包含了mysqli查询SET NAMES'utf8'和SET CHARACTER SET utf8。

我也尝试将排序规则更改为“cp1256_general_ci”,并将页面字符设置为“windows-1256”,但字体仍显示为问号。

为什么阿拉伯字体在我在线插入/编辑后显示为问号?如何解决这个问题?

提前谢谢

3 个答案:

答案 0 :(得分:3)

您是否尝试过使用 mysql_set_charset

mysql_set_charset("utf8"); 

答案 1 :(得分:0)

看来你做的一切都是正确的。但是在插入数据之前你做了这些吗?尝试清理数据库并从头开始插入

答案 2 :(得分:0)

ASCII? mark的代码是63,它是所有阿拉伯字符的第一个字节(每个字符有两个字节)。你的字符串转向?意味着只存储/检索字符的第一个字节。这表明您的存储/检索过程中存在一个瓶颈,其中只有ASCII字符可以通过。我敢打赌MySQL。找到这个的最好方法是使用连接到生产服务器MySQL的本地服务器代码(本地PhpMyAdmin应该这样做)。如果问题仍然存在,则表明它的MySQL配置正在进行(考虑到您的本地PhpMyAdmin可以与您的本地MySQL一起工作)。我只能就如何调查问题给你一些想法。您需要自己找到问题。