所以我目前正在开展一个项目,我需要创建一个数据库,其中的记录将包含英文和阿拉伯名称。
我使用PhpMyAdmin创建它,它对英文名称完全正常,但所有阿拉伯名字都显示为" ?????"。
要解决此问题,我尝试使用"设置名称' utf8' "但是它没有用。谷歌搜索这个问题我意识到PhpMyAdmin不支持阿拉伯语或特殊字符。
我不确定此问题是否有任何解决方法。你有什么建议可以解决吗?
提前致谢
答案 0 :(得分:2)
首先,您的数据库是否能够存储Unicode? SHOW CREATE TABLE table_name;
希望将您的字符集显示为utf8。如果没有,这应该解决它:
ALTER TABLE table_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
还要确保您的PHPMyAdmin设置包含以下内容:
$cfg['DefaultCharset'] = 'utf_8';
$cfg['DefaultConnectionCollation'] = 'utf8_general_ci';
答案 1 :(得分:1)
phpMyAdmin对UTF8没有任何问题,据我所知,阿拉伯语已经完全支持了一段时间。 phpMyAdmin只显示(准确地)存储在数据库中的内容;如果您没有看到您的期望,那几乎总是因为您的应用程序行为不端。也许你的谷歌搜索发现了相当旧的信息;我不确定phpMyAdmin支持这些特殊字符的时间有多长,但查看开发日志文件似乎至少自2008年以来,几乎可以肯定在此之前。无论如何:
phpMyAdmin wiki有considerable detail的问题,是一个很好的起点。 Stackoverflow上还有一个quite comprehensive guide,或者是another very similar question的链接。您可以阅读有关正确设置application charset here的更多信息,我将再次向您推荐phpMyAdmin wiki,以获取有关recovering/repairing the situation的信息。
总结一下:问题几乎可以肯定是应用程序存储数据的方式,而不是phpMyAdmin如何显示数据。确保您的数据库和表使用utf字符集。在应用程序代码中,请确保正确设置连接字符集。恢复是相当轻松的,可以通过将列字符串首先切换为二进制来实现,然后将utf8-variant对你最有意义。
答案 2 :(得分:0)