我使用PHP 5.3,MySQL 5和PHPMyAdmin 3.4创建了一个阿拉伯语网站。
在每一页上,我都使用“utf-8”字符集。我在每个页面上都包含以下行:
网站离线工作正常(在本地服务器(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”,但字体仍显示为问号。
为什么阿拉伯字体在我在线插入/编辑后显示为问号?如何解决这个问题?
提前谢谢
答案 0 :(得分:3)
您是否尝试过使用 mysql_set_charset
mysql_set_charset("utf8");
答案 1 :(得分:0)
看来你做的一切都是正确的。但是在插入数据之前你做了这些吗?尝试清理数据库并从头开始插入
答案 2 :(得分:0)
ASCII? mark的代码是63,它是所有阿拉伯字符的第一个字节(每个字符有两个字节)。你的字符串转向?意味着只存储/检索字符的第一个字节。这表明您的存储/检索过程中存在一个瓶颈,其中只有ASCII字符可以通过。我敢打赌MySQL。找到这个的最好方法是使用连接到生产服务器MySQL的本地服务器代码(本地PhpMyAdmin应该这样做)。如果问题仍然存在,则表明它的MySQL配置正在进行(考虑到您的本地PhpMyAdmin可以与您的本地MySQL一起工作)。我只能就如何调查问题给你一些想法。您需要自己找到问题。