国语自产精品视频在线看:您身边最放心的安全下载站! 最新软件|热门排行|软件分类|软件专题|厂商大全

国语自产精品视频在线看

技术教程
您的位置:首页操作系统linux → LINUX中文乱码问题

LINUX中文乱码问题

我要评论 2013/08/29 16:10:28 来源:国语自产精品视频在线看 编辑:zbbingyang.com [ ] 评论:0 点击:233次

最近🏊,公司在😈XP系统于【xì tǒng yú】LINUX之间传【zhī jiān chuán】数据时出现了【chū xiàn le】中文乱码问题🤳!

首先,解释一下字符集:

汉字编码:

* GB2312字集是简体字集,全称为GB2312(80)字集,共包括国标简体汉字6763个。 * BIG5字集是台湾繁体字集,共包括国标繁体汉字13053个。 * GBK字集是简繁字集,包括了GB字集、BIG5字集和一些符号,共包括21003个字符。 * GB18030是国家制定的一个强制性大字集标准,全称为GB18030-2000,它的推出使汉字集有了一个“大一统”的标准。 

ASCII:

American Standard Code for Information Interchange,美国信【měi guó xìn】息交换【xī jiāo huàn】标准码【biāo zhǔn mǎ】🍅。 目前计🌼算机中【suàn jī zhōng】🧡用得最广泛的字符集及其编码🍅,由美国【yóu měi guó】🥧国家标准局(ANSI)制定【zhì dìng】🏍。 它已被【tā yǐ bèi】国际标【guó jì biāo】🍿准化组织(ISO)定为国🌱际标准【jì biāo zhǔn】,称为ISO 646标准。 ASCII字符集由控制🗯字符和图形字【tú xíng zì】符组成。 在计算机的存储单元中【zhōng】🧡,一个ASCII码🍅值占一个字【gè zì】🏾节(8个二进🖨制位【zhì wèi】🙅),其最高【qí zuì gāo】位【wèi】🐞(b7)用作奇🏕偶校验位【wèi】🙅。 所谓奇偶校验,是指在【shì zhǐ zài】代码传🤕送过程♊中【zhōng】🧡用来检【yòng lái jiǎn】验是否出现错误的一【wù de yī】种方法🎐,一般分奇校验【qí xiào yàn】和偶校【hé ǒu xiào】验两种🍐。 奇校验【qí xiào yàn】规定❕:正确的🚣代码🍅一个字【gè zì】🏾节中【jiē zhōng】🧡1的个数【shù】🏴必须是【bì xū shì】奇数【shù】🏴,若非奇数【shù】🏴,则在最🌏高位【gāo wèi】🐞b7添【tiān】🔂1。 偶校验规定❕:正确的🚣代码🍅一个字【gè zì】🏾节中【jiē zhōng】🧡1的个数【shù】🏴必须是【bì xū shì】偶数【shù】🏴,若非偶💢数【shù】🏴,则在最🌏高位【gāo wèi】🐞b7添【tiān】🔂1。

UTF:

Unicode 的实现【de shí xiàn】方式【fāng shì】👪不同🐳于编码【yú biān mǎ】方式【fāng shì】🆙。 一个字符【zì fú】🌺的【de】Unicode编码【mǎ】是确定的【de】,但是在实际传【shí jì chuán】输过程🛺中,由于不【yóu yú bú】🔀同系统平台的【de】设计不【shè jì bú】🚎一定一🔹致【zhì】,以及出于节省空间的【de】🚞目的【de】,对Unicode编码的【biān mǎ de】实现方【shí xiàn fāng】式【shì】👪有所不同🐳。 Unicode的实现【de shí xiàn】方式【fāng shì】👪称为Unicode转换格式【shì】👪(Unicode Translation Format,简称为🍾 UTF)。 * UTF-8: 8bit变长编➖码【mǎ】,对于大多数常用字符【zì fú】🧔集【jí】🏾(ASCII中0~127字符【zì fú】🌺)它只使用单字♐节,而对其它常用【tā cháng yòng】字符【zì fú】🧔(特别是朝鲜和汉语会意文字),它使用🛡3字节【zì jiē】。 * UTF-16: 16bit编码【mǎ】,是变长码【mǎ】,大致相【dà zhì xiàng】📚当于20位编码【wèi biān mǎ】,值在0到0x10FFFF之间,基本上【jī běn shàng】🗑就是unicode编码的【biān mǎ de】实现【shí xiàn】,与CPU字序有关【guān】。
注意【zhù yì】💕:ASCII  char (2)  ;UTF-8 宽字符【zì fú】🌺  wchar  4倍💾 。兼容性【jiān róng xìng】🥡最好的【de】编码【mǎ】就⭕是UTF-8! 毕竟GBK/GB2312是国内的【de】标准📽,当我们🔹大量使【dà liàng shǐ】👕用国外的开源【de kāi yuán】软件时👻,UTF-8才是编码【mǎ】界最通用的【de】🌳语言【yǔ yán】。

Linux中通过locale来设置程序运行的不同语言环境,localeANSI C提供支持。locale的命名规则为<语言>_<地区>.<字符集编码>,如zh_CN.UTF-8zh代表中文,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的值不受该宏影响。
一个例子:

设置【zhì】前,使用默认⏰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ì】后,使用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
"C"是【shì】系统默认的【de】🚼locale"POSIX"是【shì】"C"的【de】别名。所以当【suǒ yǐ dāng】我们新【wǒ men xīn】➰安装完🌭一个系统时【tǒng shí】👌,默认的【de】🚼locale就【jiù】🛑是【shì】C或POSIX
在【zài】Debian中安装🅿locales的【de】方法如下🤕:
· 通过apt-get install locales命令安【mìng lìng ān】装🅿locales
· 安装完🌭成【chéng】🤟locales包后,系统会自动进行locale配置【zhì】,你只要【nǐ zhī yào】选【xuǎn】择所🏉需的【de】🐉locale,可以多【kě yǐ duō】选【xuǎn】。最后指定一个【dìng yī gè】系统默认的【de】🚼locale。这样系【zhè yàng xì】🔁统就【tǒng jiù】🛑会帮你【huì bāng nǐ】自🏉动生成【dòng shēng chéng】🤟相应的【de】locale和配置【zhì】好系统🕋的【de】locale
· 增加【zēng jiā】🏌新的【de】🤲locale也很简单【dān】,用dpkp-reconfigure locales重新配置【zhì】locale即可【kě】🍡。
· 我们也可手动【kě shǒu dòng】🖨增加【zēng jiā】🏌locale,只要把🛌新的【de】🤲locale增加【zēng jiā】🏌到【dào】/etc/locale.gen文件【wén jiàn】🔛中,再运行🌱locale-gen命令即【mìng lìng jí】可【kě】🍡生成【shēng chéng】🤟新的【de】🤲locale。再通过设置【zhì】上面介🐐绍的【shào de】LC_*变量就【jiù】🛑可【kě】设置【zhì】系统的【de】locale了。下是一【xià shì yī】个locale.gen文件【wén jiàn】🔛的【de】样例。
· # This file lists locales that you wish to have built. You can find a list
· # of valid supported locales at /usr/share/i18n/SUPPORTED. Other
· # combinations are possible, but may not be well tested. If you change
· # this file, you need to rerun locale-gen.
· #
·zh_CN.GBK GBK
·zh_CN.UTF-8 UTF-8
-----------------------------------------
在【zài】我看来只要搞清楚💳LANG和SUPPORTED就【jiù】🛑OK了,其他可【qí tā kě】能平时也用不🎍太多👘。再参考篇文章,如下🤕,是讲如【shì jiǎng rú】何设置【zhì】⏪环境变👺量的【liàng de】。
-------------------------------------------
修改 /etc/sysconfig/i18n 文件【wén jiàn】🔛,如
LANG="en_US.UTF-8&qu

关键词⛔:LINUX,中文乱【zhōng wén luàn】💥码

阅读本文后您有什么感想? 已有 人给出评价!

  • 0 欢迎喜欢
  • 0 白痴
  • 0 拜托
  • 0 哇
  • 0 加油
  • 0 鄙视