[Linux] linux操作系统字符集与ssh工具字符集配置问题


本文总阅读量

1、操作系统字符集设置

centos6和7的字符集文件位置不同

1
2
CentOS6.x 字符集配置文件在/etc/syscconfig/i18n
CentOS7.x 字符集配置文件在/etc/locale.conf

以centos7为例,修改字符集
cat /etc/locale.conf

1
LANG="zh_CN.UTF-8"

修改为GBK字符集
cat /etc/locale.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
LANG="zh_CN.GBK"
[root@dax-mysql-slave ~]# locale
LANG=zh_CN.GBK
LC_CTYPE="zh_CN.GBK"
LC_NUMERIC="zh_CN.GBK"
LC_TIME="zh_CN.GBK"
LC_COLLATE="zh_CN.GBK"
LC_MONETARY="zh_CN.GBK"
LC_MESSAGES="zh_CN.GBK"
LC_PAPER="zh_CN.GBK"
LC_NAME="zh_CN.GBK"
LC_ADDRESS="zh_CN.GBK"
LC_TELEPHONE="zh_CN.GBK"
LC_MEASUREMENT="zh_CN.GBK"
LC_IDENTIFICATION="zh_CN.GBK"
LC_ALL=

2、系统字符集为utf-8,securecrt工具的字符集为gb2312,oracle字符集为ZHS16GBK



如果使用securtcrt工具,设置该工具字符集为gb2312(小于gbk字符集)

进入操作系统如果操作系统有中文字符,会出现乱码的情况

分别查看以utf8编码的文件和ansi编码的文件

以gb2312字符集连接进来的securecrt工具,查看ansi编码的文件正常,查看utf8编码的文件乱码。
使用securecrt工具查看数据库中存在中文的数据:

3、系统字符集为utf-8,securecrt工具的字符集为urf-8,oracle字符集为ZH16GBK




进入操作系统如果操作系统有中文字符,显示正常:

分别查看以utf8编码的文件和ansi编码的文件

以utf-8字符集连接进来的securecrt工具,查看ansi编码的文件乱码,查看utf8编码的文件正常。
使用securecrt工具查看数据库中存在中文的数据:

查看带有中文的数据全部显示乱码

4、结论:

使用ssh工具连接到服务器是要注意连接工具的字符集,如果只在系统级别操作,要注意保持工具字符集和操作系统字符集的一致性。如果要查询数据库里面带有中文的相关数据,要注意保持工具字符集和操作系统字符集的一致性,否则查询结果会出现乱码。

目录
  1. 1. 1、操作系统字符集设置
  2. 2. 2、系统字符集为utf-8,securecrt工具的字符集为gb2312,oracle字符集为ZHS16GBK
  3. 3. 3、系统字符集为utf-8,securecrt工具的字符集为urf-8,oracle字符集为ZH16GBK
  4. 4. 4、结论:

Proudly powered by Hexo and Theme by Lap
本站访客数人次
© 2020 zeven0707's blog