Linux下ssh客户端显示中文乱码问题分析

Windows下通过ssh客户端工具连接Linux服务器,操作数据库时,如果涉及到中文的操作,需要考虑三个方面的内容
A,客户端工具使用的字符集语言
客户端工具编码
B,操作系统使用的LANG环境变量

[gbasedbt@gbasehost01 ~]$ echo $LANG
zh_CN.GB18030

C,数据库使用的字符集

[gbasedbt@gbasehost01 ~]$ echo $DB_LOCALE
zh_CN.GB18030-2000
[gbasedbt@gbasehost01 ~]$ echo $CLIENT_LOCALE
zh_CN.GB18030-2000

对于在操作系统中显示中文,需要满足AB,即:客户端使用的字符集语言及环境变量LANG需要一致或者兼容
如果文本文件的类型是ISO-8859 text
1,如果LANG是zh_CN.GB18030,而客户端工具使用的字符集语言是UTF-8,将会显示乱码
客户端编码与LANG不一致,乱码
2,如果LANG是zh_CN.GB18030,客户端工具使用的字符集语言是GB18030,将能正常显示
客户端编码与LANG匹配,兼容文本文件类似
如果文本文件的类型是UTF-8 Unicode text
1,如果LANG是zh_CN.UTF-8,而客户端工具使用的字符集语言是GB18030,将会显示乱码
客户端工具和LANG不匹配,乱码
2,如果LANG是zh_CN.UTF-8,客户端工具使用的字符集语言是UTF-8,将能正常显示
客户端工具编码和LANG匹配,文件类型匹配,显示正常

对于数据库来说,数据库的字符集需要输入类型使用文本文件的类型兼容,不然将会报错或者显示异常。
1,数据库字符集使用GB18030-2000,文本文件类型是ISO-8859 text
数据库字符集与输入的编码匹配,正常显示
2,数据库字符集使用GB18030,文本文件的类型是UTF-8,显示乱码
显示异常
3,数据库字符集使用UTF-8,文本文件类型是UTF-8,正常显示
在这里插入图片描述
4,数据库字符集使用UTF-8,文本文件类型是GB18030,将会报34389错误
在这里插入图片描述

分析结果:
当客户端工具编码、LANG环境变量、数据库字符集和输入的文本的编码类型 四者相匹配时,能完全正常显示。如果数据库字符集编码输入的文本的编码类型不匹配(或者兼容),可能出现错误!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值