我最近打开了一个我自己的旧网站给另一个网站服务器。我上传了数据库,网站文件,检查了连接,一切运行顺利。
我唯一不能修正的是希腊语显示为
“????“
是的。签入数据库,一切正常,字母显示,编码为utf8。所以我最后认为这是X-Carts的问题。我能试着做什么?X-Cart版本是4.4.1。
最佳答案
你必须检查以下几点:
1)要导入的database.sql文件是utf-8。希腊语符号在文本编辑器中是可读的
aim-server[~/tmp]$ file -ib database.sql
text/plain; charset=utf-8
aim-server[~/tmp]$ grep ελληνικά database.sql
INSERT INTO `xcart_languages` VALUES ('el','lbl_categories','Categories ελληνικά','Labels');
aim-server[~/tmp]$
2)每个mysql变量都是utf-8。在mysql客户机中可以读取希腊语符号
[aim_xcart_4_4_1_gold]>show variables like '%colla%';
+----------------------+-----------------+
| Variable_name | Value |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+----------------------+-----------------+
3 rows in set (0,00 sec)
[aim_xcart_4_4_1_gold]>show variables like '%char%'; +--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0,00 sec)
[aim_xcart_4_4_1_gold]>select * from xcart_languages where name='lbl_categories';
+------+----------------+-----------------------------+--------+
| code | name | value | topic |
+------+----------------+-----------------------------+--------+
| en | lbl_categories | Categories ελληνικά | Labels |
3)字符集是“主页::编辑语言::希腊语”页上的UTF-8
4)
mysql_query("SET NAMES 'utf8'");
根据https://help.x-cart.com/index.php?title=X-Cart:FAQs#How_do_I_set_up_my_X-Cart_to_support_UTF-8.3F