快速业务通道

LINUX中文乱码问题

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-15
最近,公司在XP系统于LINUX之间传数据时出现了中文乱码问题!
,解释一下字符集:
汉字编码: * GB2312字集是简体字集,全称为GB2312(80)字集,共包括国标简体汉字6763个. * BIG5字集是台湾繁体字集,共包括国标繁体汉字13053个. * GBK字集是简繁字集,包括了GB字集、BIG5字集和一些符号,共包括21003个字符. * GB18030是国家制定的一个强制性大字集标准,全称为GB18030-2000,它的推出使汉字集有了一个“大一统”的标准.
ASCII: American Standard Code for Information Interchange,美国信息交换标准码. 目前计算机中用得最广泛的字符集及其编码,由美国国家标准局(ANSI)制定. 它已被国际标准化组织(ISO)定为国际标准,称为ISO 646标准. ASCII字符集由控制字符和图形字符组成. 在计算机的存储单元中,一个ASCII码值占一个字节(8个二进制位),其最高位(b7)用作奇偶校验位. 所谓奇偶校验,是指在代码传送过程中用来检验是否出现错误的一种方法,一般分奇校验和偶校验两种. 奇校验规定:正确的代码一个字节中1的个数是奇数,若非奇数,则在最高位b7添1. 偶校验规定:正确的代码一个字节中1的个数是偶数,若非偶数,则在最高位b7添1.
UTF: Unicode 的实现方式不同于编码方式. 一个字符的Unicode编码是确定的,但是在实际传输过程中,不同系统平台的设计不一定一致,以及出于节省空间的目的,对Unicode编码的实现方式有所不同. Unicode的实现方式称为Unicode转换格式(Unicode Translation Format,简称为 UTF). * UTF-8: 8bit变长编码,对于大多数常用字符集(ASCII中0~127字符)它只使用单字节,而对其它常用字符(特别是朝鲜和汉语会意文字),它使用3字节. * UTF-16: 16bit编码,是变长码,大致相当于20位编码,值在0到0x10FFFF之间,基本上就是unicode编码的实现,与CPU字序有关.
注意:ASCII char (2) ;UTF-8 宽字符 wchar 4倍 .兼容性最好的编码就是UTF-8! 毕竟GBK/GB2312是国内的标准,当我们大量使用国外的开源软件时,UTF-8才是编码界最通用的语言.
Linux中通过locale来设置程序运行的不同语言环境,localeANSI C提供支持.locale的命名规则为<语言>_<地区>.<字符集编码>,如zh_CN.UTF-8,zh代表中文,CN代表大陆地区,UTF-8表示字符集.在locale环境中,有一组变量,代表国际化环境中的不同设置: 1. LC_COLLATE
定义该环境的排序和比较规则 2. LC_CTYPE
用于字符分类和字符串处理,控制所有字符的处理方式,包括字符编码,字符是单字节还是多字节,如何打印等.是最重要的一个环境变量. 3. LC_MONETARY
货币格式 4. LC_NUMERIC
非货币的数字显示格式 5. LC_TIME
时间和日期格式 6. LC_MESSAGES
提示信息的语言.另外还有一个LANGUAGE参数,它与LC_MESSAGES相似,但如果该参数一旦设置,则LC_MESSAGES参数就会失效.LANGUAGE参数可同时设置多种语言信息,如LANGUANE="zh_CN.GB18030:zh_CN.GB2312:zh_CN". 7. LANG
LC_*的默认值,是最低级别的设置,如果LC_*没有设置,则使用该值.类似于 LC_ALL. 8. LC_ALL
它是一个宏,如果该值设置了,则该值会覆盖所有LC_*的设置值.注意,LANG的值不受该宏影响. 一个例子:
设置前,使用默认locale
[root@db-wanggaofei ~]# locale
LANG="POSIX"
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=
设置后,使用zh_CN.GDK中文locale
[root@db-wanggaofei ~]# export LC_ALL=zh_CN.GBK
[root@db-wanggaofei ~]# locale
LANG=zh_CN.UTF-8
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=zh_CN.GBK

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号