1

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

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

http://jsfiddle.net/Hh7mk/

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

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

我的设置(在线):

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

  • PHPMyAdmin MySQL 字符集:UTF-8 Unicode (utf8)。

  • 数据库和表排序规则:utf8_general_ci。

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

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

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

先感谢您

4

3 回答 3

3

您是否尝试过使用mysql_set_charset

mysql_set_charset("utf8"); 
于 2012-07-15T06:41:37.730 回答
0

ASCII ? 标记的代码是 63,它是所有阿拉伯字符的第一个字节(每个字符有两个字节)。让你的琴弦转向?意味着只有字符的第一个字节被存储/检索。这表明某处是您的存储/检索过程,您遇到了只有 ASCII 字符可以通过的瓶颈。我的赌注是 MySQL。最好的方法是使用本地服务器的代码(本地 PhpMyAdmin 应该这样做)连接到生产服务器的 MySQL。如果问题仍然存在,则表明它是 MySQL 的配置(考虑到您本地的 PhpMyAdmin 与您的本地 MySQL 一起工作的事实)。我只能为您提供有关如何调查问题的想法。您需要自己找到问题本身。

于 2012-07-29T08:41:38.570 回答
0

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

于 2012-07-29T06:48:14.380 回答