LINUX中文乱码问题
最近🏊,公司在😈XP系统于【xì tǒng yú】LINUX之间传【zhī jiān chuán】数据时出现了【chū xiàn le】中文乱码问题🤳!
首先,解释一下字符集:
汉字编码:
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】。
定义该环境的排序和比较规则
用于字符分类和字符串处理,控制所有字符的处理方式,包括字符编码,字符是单字节还是多字节,如何打印等。是最重要的一个环境变量。
货币格式
非货币的数字显示格式
时间和日期格式
提示信息的语言。另外还有一个LANGUAGE参数,它与LC_MESSAGES相似,但如果该参数一旦设置,则LC_MESSAGES参数就会失效。LANGUAGE参数可同时设置多种语言信息,如LANGUANE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"。
LC_*的默认值,是最低级别的设置,如果LC_*没有设置,则使用该值。类似于 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
· 安装完🌭成【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。
· # 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