分享

中文乱码问题几则 | Pythoner

 dinghj 2014-04-06
更多 0

以下是几则和中文乱码有关的问题和解决方案,包括: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文件末尾添加:

Shell
1
2
export LANG="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"

在~/.vimrc中添加:

Vim
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后,添加一行:

Shell
1
CONTENT_TYPE=text/plain; charset=UTF-8

4.解决MySQL中文乱码问题(Ubuntu)

(updated @ 2014-02-26)

首先,进入MySQL,查看字符集问题所在:

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),重新进入并查看字符集是否已修复。

本文内容遵从CC3.0版权协议,转载请注明:转自Pythoner

本文链接地址:中文乱码问题几则

0

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多