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来设置程序运行的不同语言环境,locale由ANSI 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: 设置后,使用zh_CN.GDK中文locale: [root@db-wanggaofei ~]# export LC_ALL=zh_CN.GBK |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: Linux服务笔记之五:NFS服务下一篇: 该添加点东西了
关于LINUX中文乱码问题的所有评论