数据库中文显示必须每个环节的字符集都支持中文,且一致。从本地SecureCRT到数据库总共经历了多少环节呢?
1、本机到虚拟window开发机 (由于windows都没问题);
2、虚拟window开发机到Linux虚拟机,走的是SecureCRT
设置: 选项->会话选项->外观->字符集编码->UTF-8
3、从Linux虚拟机到DB的跳板机,走的是SSH
设置:Linux机的locale得支持中文,比如zh-CN.UTF-8;但是由于机器的全局配置是en_US.UTF-8的。我们只能修改user级别的profile,因此编辑:
#vi ~/.bash_profile (隐藏文件)
添加两行:
export LC_CTYPE=zh_CN.UTF-8
export LANG=zh_CN.UTF-8
#source ~/.bash_profile 立即生效
4、从跳板机到MYSQL SERVER,走的是mysql客户端
数据从MYSQL Server传递到mysql客户端,mysql客户端的编码得一致。
Mysql> set names utf8
查看MYSQL 的字符集:
mysql> show variables like '%char%';
+--------------------------+-----------------------------------------+
| Variable_name | Value |
+--------------------------+-----------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | gbk |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | gbk |
| character_set_system | utf8 |
| character_sets_dir | /home/mysql/mysql/share/mysql/charsets/ |
+--------------------------+-----------------------------------------+
8 rows in set (0.00 sec)