我有一个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
collation_connection | utf8_general_ci
collation_database | utf8_general_ci
collation_server | latin1_swedish_ci
我有一个网页,显示MySQL DB中的汉字和拼音。汉字显示很好,但拼音是乱码。例如,
显示:NánjÄ«ng 纠正:Nánjīng
现在,我检查页面编码并将其设置为UTF8。我在PHP中回应了Nánjīng,它显示得很好。我在命令行中检查了数据,它在数据库中是正确的。但是,无论何时通过查询,它都会拼写拼音,而不是汉字。任何人都知道为什么会发生这种情况?
答案 0 :(得分:2)
我明白了。这是一个整理问题。我修改了cnf以将collation_server变量设置为utf8_general_ci,然后重新导入我的数据并且它工作正常......我不知道为什么我之前没想到它。
答案 1 :(得分:2)
如果你想在mysql数据库中存储拼音,你必须用 base64_encode(); 对其进行编码,并且在显示时你必须用 base64_decode(); <编码它。 / strong>,最重要的一个,你必须在页面顶部使用标题('Content-Type:text / html; charset = utf8 general ci');