欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

中文乱码问题几则

程序员文章站 2022-05-27 11:52:22
...

以下是几则和中文乱码有关的问题和解决方案,包括:Windows下matplotlib中文乱码、SecureCRT终端中的VI中文乱码、crontab发送邮件中文乱码、MySQL中文乱码问题等。 1.解决Windows下matplotlib中文乱码问题 (updated @ 2013-05-31) 详见之前发的《解决matplot

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

export LANG="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"

在~/.vimrc中添加:

"中文乱码问题
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后,添加一行:

CONTENT_TYPE=text/plain; charset=UTF-8

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

(updated @ 2014-02-26)

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

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