mysql对于国人来说,主要使用gbk或者utf8字符集。GBK和UTF-8都是系统的字符编码,GBK包含中日韩字符集合,能完美支持简体中文和英文,但如果在IE没有安装简体中文支持的电脑上阅读GBK编码的网页,中文会变成乱码,例如英国人浏览您的网站,电脑全是火星文,UTF-8则包含了大部分文字的编码,可以表达更多的语言,使用UTF-8一个最大的好处就是其他地区的用户(美国、印度、台湾)无需安装简体中文支持,就能正常看您的文字,并且不会出现乱码,通常网络传输也是使用UTF-8编码。
utf8字符集中汉字默认占3个字节,英文字母是占1个,而gbk是汉字字母都是2个字节,使用gbk节省磁盘空间。
一句话,使用GBK节省空间,使用UTF8全球化更好。
以UTF8为例,不论你以前的mysql设置的字符集是什么,进行下面的操作就能都设置为UTF8:
首先修改/etc/sysconfig/i18n文件为:
LANG=”en_US.UTF-8″
SUPPORTED=”zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en”
SYSFONT=”latarcyrheb-sun16″
注意,如果设置LANG=”zh_CN.UTF-8″,在文字界面会一切正常,startx进入图形界面会发现全部是乱码!!
然后修改my.cnf文件
找到[mysql] 在下面添加
default-character-set=utf8
找到[mysqld] 添加
default-character-set=utf8
init_connect=’SET NAMES utf8′
修改好后,重新启动mysql 即可,查询一下show variables like ‘character%’,如果是下面的情况就OK了;
+————————–+—————————-+
| Variable_name | Value |
+————————–+—————————-+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
如果使用securecrt登录,还要注意,最好使用 SecureCRT v6.5.8.380 汉化版,对中文显示和输入支持很好,以前我用的5.0总有点问题。下载地址:
http://www.crsky.com/soft/6838.html
然后设置选项-会话选项-外观-字符编码,选择utf-8,字体选择新宋体,就一切ok了。
登录mysql进行插入中文和显示中文的测试,如果还有乱码的情况出现,请使用show create database dbname,show create table tbname检查你的数据库,表,字段的字符集设置,很可能还有一些不是utf8,导致乱码,改为utf8后,一切正常。
补充:init_connect参数对于连接数据库的用户是超级用户组的用户将忽略,这样是为了避免该参数导致数据库致命错误,而无法使用任何一个用户连接修改该项配置…


踩踩