中文乱码问题几则
以下是几则和中文乱码有关的问题和解决方案,包括:Windows下matplotlib中文乱码、SecureCRT终端中的VI中文乱码、crontab发送邮件中文乱码、MySQL中文乱码问题等。
1.解决Windows下matplotlib中文乱码问题
(updated @ 2013-05-31)
详见之前发的《解决matplotlib中文乱码问题(Windows)》一帖。
2.解决SecureCRT终端中的VI中文乱码问题
(updated @ 2013-12-11)
首先,设置SecureCRT的字符集为UTF-8,具体为:Session Options:Appearance:Character为UTF-8。
然后,在~/.bash_profile文件末尾添加:
1 2 |
export LANG="zh_CN.UTF-8" export LC_ALL="zh_CN.UTF-8" |
在~/.vimrc中添加:
1 2 3 |
"中文乱码问题 set termencoding=utf-8 set fileencodings=utf-8,gb18030,utf-16,big5 |
最后,必须打开新的终端进行测试(否则得到的结果并不一定正确)。
在VI的配置中,termencoding是指VI所工作的终端的字符编码方式;而fileencodings是指当前编辑的文件的字符编码方式列表,VI会自动检测这个列表,并将最终检测到的字符编码方式设置给fileencoding。
3.解决crontab邮件中文乱码问题(CentOS)
(updated @ 2013-12-11)
网上看到的文章中方法一般都是添加LANG=zh_CN.UTF-8,但是发现我这样设置后依然不可以。此外,发现原始邮件内容显示正确,但是编码错误(为ANSI_X3.4-1968)。因此,对于这种情况的修改方法是:在crontab –e后,添加一行:
1 |
CONTENT_TYPE=text/plain; charset=UTF-8 |
4.解决MySQL中文乱码问题(Ubuntu)
(updated @ 2014-02-26)
首先,进入MySQL,查看字符集问题所在:
1 |
show variables like '%chara%'; |
如果看到字符集非utf8(除character_set_filesystem外),而是latin1等,则说明需要修改字符集。
编辑/etc/mysql/my.cnf,在[client]和[mysqld]下添加default-character-set = utf8。在[client]下添加default-character-set=utf8,在[mysqld]下添加character-set-server=utf8。
重启MySQL(/etc/init.d/mysql restart),重新进入并查看字符集是否已修复。
暂无评论