MySQL中文拼音编码问题

时间:2011-08-28 03:12:02

标签: php mysql cjk

我有一个MySQL数据库设置为utf8。我的字符集/校对变量是:

  

Variable_name |的

     

character_set_client | UTF8

     

character_set_connection | UTF8

     

character_set_database | UTF8

     

character_set_filesystem |二进制

     

character_set_results | UTF8

     

character_set_server | LATIN1

     

character_set_system | UTF8

     

collat​​ion_connection | utf8_general_ci

     

collat​​ion_database | utf8_general_ci

     

collat​​ion_server | latin1_swedish_ci

我有一个网页,显示MySQL DB中的汉字和拼音。汉字显示很好,但拼音是乱码。例如,

显示:NánjÄ«ng 纠正:Nánjīng

现在,我检查页面编码并将其设置为UTF8。我在PHP中回应了Nánjīng,它显示得很好。我在命令行中检查了数据,它在数据库中是正确的。但是,无论何时通过查询,它都会拼写拼音,而不是汉字。任何人都知道为什么会发生这种情况?

2 个答案:

答案 0 :(得分:2)

我明白了。这是一个整理问题。我修改了cnf以将collat​​ion_server变量设置为utf8_general_ci,然后重新导入我的数据并且它工作正常......我不知道为什么我之前没想到它。

答案 1 :(得分:2)

  

如果你想在mysql数据库中存储拼音,你必须用 base64_encode(); 对其进行编码,并且在显示时你必须用 base64_decode(); <编码它。 / strong>,最重要的一个,你必须在页面顶部使用标题('Content-Type:text / html; charset = utf8 general ci');