MySQL中文拼音编码问题
Posted
技术标签:
【中文标题】MySQL中文拼音编码问题【英文标题】:MySQL Chinese pinyin encoding issue 【发布时间】:2011-11-05 08:06:50 【问题描述】:我有一个 mysql 数据库设置为 utf8。我的字符集/排序规则变量是:
变量名 | 价值
character_set_client | utf8
character_set_connection | utf8
character_set_database | utf8
character_set_filesystem |二进制
character_set_results | utf8
character_set_server |拉丁语1
character_set_system | utf8
collation_connection | utf8_general_ci
collation_database | utf8_general_ci
collation_server | latin1_swedish_ci
我有一个网页,显示来自我们的 MySQL 数据库的汉字和拼音。汉字显示正常,但拼音是乱码。例如,
显示:NánjÄ«ng 正确:南京
现在,我检查页面编码并将其设置为 UTF8。我在 php 中呼应了 Nánjīng,它显示得很好。我在命令行中检查了数据,它在数据库中是正确的。但是,每当它通过查询时,它会混淆拼音,而不是汉字。有人知道为什么会这样吗?
【问题讨论】:
汉字有没有可能是UTF-8而拼音不是?您需要验证每个表的字符集。 相关问题,fixing column encoding in MySQL @Steve-o 感谢您的链接!这使我走上了正确的道路。我发布了我为修复它所做的工作。NánjÄ«ng
是 Mojibake;请参阅***.com/questions/38363566/… 了解可能的原因。
【参考方案1】:
我想通了。这是一个整理问题。我修改了 cnf 将 collation_server 变量设置为 utf8_general_ci,然后重新导入了我的数据,它工作正常......我不知道为什么我之前没有想到。
【讨论】:
【参考方案2】:如果你想在mysql数据库中存储拼音,你必须通过base64_encode();对其进行编码,并且在显示时你必须通过base64_decode(); 最重要的之一,你必须在页面顶部使用 header('Content-Type: text/html; charset=utf8 general ci');
【讨论】:
以上是关于MySQL中文拼音编码问题的主要内容,如果未能解决你的问题,请参考以下文章