欧美日韩精品在线,国内精品久久久久久久久,一级毛片恃级毛片直播,清纯唯美亚洲综合欧美色

如何解決LINUX中文亂碼問(wèn)題_Linux教程

編輯Tag賺U幣

在XP系統(tǒng)于LINUX之間傳數(shù)據(jù)時(shí)出現(xiàn)中文亂碼問(wèn)題!
,解釋一下字符集:

漢字編碼:
* GB2312字集是簡(jiǎn)體字集,全稱(chēng)為GB2312(80)字集,共包括國(guó)標(biāo)簡(jiǎn)體漢字6763個(gè). * BIG5字集是臺(tái)灣繁體字集,共包括國(guó)標(biāo)繁體漢字13053個(gè). * GBK字集是簡(jiǎn)繁字集,包括了GB字集、BIG5字集和一些符號(hào),共包括21003個(gè)字符. * GB18030是國(guó)家制定的一個(gè)強(qiáng)制性大字集標(biāo)準(zhǔn),全稱(chēng)為GB18030-2000,它的推出使?jié)h字集有了一個(gè)“大一統(tǒng)”的標(biāo)準(zhǔn).

ASCII:
American Standard Code for Information Interchange,美國(guó)信息交換標(biāo)準(zhǔn)碼. 目前計(jì)算機(jī)中用得最廣泛的字符集及其編碼,由美國(guó)國(guó)家標(biāo)準(zhǔn)局(ANSI)制定. 它已被國(guó)際標(biāo)準(zhǔn)化組織(ISO)定為國(guó)際標(biāo)準(zhǔn),稱(chēng)為ISO 646標(biāo)準(zhǔn). ASCII字符集由控制字符和圖形字符組成. 在計(jì)算機(jī)的存儲(chǔ)單元中,一個(gè)ASCII碼值占一個(gè)字節(jié)(8個(gè)二進(jìn)制位),其最高位(b7)用作奇偶校驗(yàn)位. 所謂奇偶校驗(yàn),是指在代碼傳送過(guò)程中用來(lái)檢驗(yàn)是否出現(xiàn)錯(cuò)誤的一種方法,一般分奇校驗(yàn)和偶校驗(yàn)兩種. 奇校驗(yàn)規(guī)定:正確的代碼一個(gè)字節(jié)中1的個(gè)數(shù)是奇數(shù),若非奇數(shù),則在最高位b7添1. 偶校驗(yàn)規(guī)定:正確的代碼一個(gè)字節(jié)中1的個(gè)數(shù)是偶數(shù),若非偶數(shù),則在最高位b7添1.

UTF:
Unicode 的實(shí)現(xiàn)方式不同于編碼方式. 一個(gè)字符的Unicode編碼是確定的,但是在實(shí)際傳輸過(guò)程中,不同系統(tǒng)平臺(tái)的設(shè)計(jì)不一定一致,以及出于節(jié)省空間的目的,對(duì)Unicode編碼的實(shí)現(xiàn)方式有所不同. Unicode的實(shí)現(xiàn)方式稱(chēng)為Unicode轉(zhuǎn)換格式(Unicode Translation Format,簡(jiǎn)稱(chēng)為 UTF). * UTF-8: 8bit變長(zhǎng)編碼,對(duì)于大多數(shù)常用字符集(ASCII中0~127字符)它只使用單字節(jié),而對(duì)其它常用字符(特別是朝鮮和漢語(yǔ)會(huì)意文字),它使用3字節(jié). * UTF-16: 16bit編碼,是變長(zhǎng)碼,大致相當(dāng)于20位編碼,值在0到0x10FFFF之間,基本上就是unicode編碼的實(shí)現(xiàn),與CPU字序有關(guān)。
注意:ASCII char (2) ;UTF-8 寬字符 wchar 4倍 .兼容性最好的編碼就是UTF-8! 畢竟GBK/GB2312是國(guó)內(nèi)的標(biāo)準(zhǔn),當(dāng)我們大量使用國(guó)外的開(kāi)源軟件時(shí),UTF-8才是編碼界最通用的語(yǔ)言.

在Linux中通過(guò)locale來(lái)設(shè)置程序運(yùn)行的不同語(yǔ)言環(huán)境,locale由ANSI C提供支持.locale的命名規(guī)則為<語(yǔ)言>_<地區(qū)>.<字符集編碼>,如zh_CN.UTF-8,zh代表中文,CN代表大陸地區(qū),UTF-8表示字符集.在locale環(huán)境中,有一組變量,代表國(guó)際化環(huán)境中的不同設(shè)置:
1. LC_COLLATE
定義該環(huán)境的排序和比較規(guī)則
2. LC_CTYPE
用于字符分類(lèi)和字符串處理,控制所有字符的處理方式,包括字符編碼,字符是單字節(jié)還是多字節(jié),如何打印等.是最重要的一個(gè)環(huán)境變量.
3. LC_MONETARY
貨幣格式
4. LC_NUMERIC
非貨幣的數(shù)字顯示格式
5. LC_TIME
時(shí)間和日期格式
6. LC_MESSAGES
提示信息的語(yǔ)言.另外還有一個(gè)LANGUAGE參數(shù),它與LC_MESSAGES相似,但如果該參數(shù)一旦設(shè)置,則LC_MESSAGES參數(shù)就會(huì)失效.LANGUAGE參數(shù)可同時(shí)設(shè)置多種語(yǔ)言信息,如LANGUANE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
7. LANG
LC_*的默認(rèn)值,是最低級(jí)別的設(shè)置,如果LC_*沒(méi)有設(shè)置,則使用該值.類(lèi)似于 LC_ALL.
8. LC_ALL
它是一個(gè)宏,如果該值設(shè)置了,則該值會(huì)覆蓋所有LC_*的設(shè)置值.注意,LANG的值不受該宏影響.
一個(gè)例子:
設(shè)置前,使用默認(rèn)locale:[root@db-wanggaofei ~]# localeLANG="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= 設(shè)置后,使用zh_CN.GDK中文locale:[root@db-wanggaofei ~]# export LC_ALL=zh_CN.GBK[root@db-wanggaofei ~]# localeLANG=zh_CN.UTF-8LC_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"是系統(tǒng)默認(rèn)的locale,"POSIX"是"C"的別名.當(dāng)我們新安裝完一個(gè)系統(tǒng)時(shí),默認(rèn)的locale就是C或POSIX.
在Debian中安裝locales的方法如下:
· 通過(guò)apt-get install locales命令安裝locales包
· 安裝完成locales包后,系統(tǒng)會(huì)自動(dòng)進(jìn)行l(wèi)ocale配置,你只要選擇所需的locale,可以多選.指定一個(gè)系統(tǒng)默認(rèn)的locale.這樣系統(tǒng)就會(huì)幫你自動(dòng)生成相應(yīng)的locale和配置好系統(tǒng)的locale.
· 增加新的locale也很簡(jiǎn)單,用dpkp-reconfigure locales重新配置locale即可.
· 我們也可手動(dòng)增加locale,只要把新的locale增加到/etc/locale.gen文件中,再運(yùn)行l(wèi)ocale-gen命令即可生成新的locale.再通過(guò)設(shè)置上面介紹的LC_*變量就可設(shè)置系統(tǒng)的locale了.下是一個(gè)locale.gen文件的樣例.
· # 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
-----------------------------------------在我看來(lái)只要搞清楚LANG和SUPPORTED就OK了,其他可能平時(shí)也用不太多.再參考篇文章,如下,是講如何設(shè)置環(huán)境變量的.-------------------------------------------修改 /etc/sysconfig/i18n 文件,如LANG="en_US.UTF-8",xwindow會(huì)顯示英文界面,LANG="zh_CN.GB18030",xwindow會(huì)顯示中文界面. 還有一種方法 cp /etc/sysconfig/i18n $HOME/.i18n 修改 $HOME/.i18n 文件,如LANG="en_US.UTF-8",xwindow會(huì)顯示英文界面,LANG="zh_CN.GB18030",xwindow會(huì)顯示中文界面.這樣就可以改變個(gè)人的界面語(yǔ)言,而不影響別的用戶修改后的/etc/sysconfig/i18n 文件為:LANG="en_US.UTF-8"SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"SYSFONT="latarcyrheb-sun16"LC_ALL="en_US.UTF-8"export LC_ALL設(shè)置完畢后重啟或者用rc.local使生效
或修改登錄用戶的.bash_profile文件加入
export LANG=zh_CN.GB18030
export LANGUAGE=zh_CN.GB18030:zh_CN.GB2312:zh_CN
-----------------------------------------------------------------------------------------------
一定要知道Windows XP 是GB2312的編碼,如果你的服務(wù)器字符集不是這個(gè),估計(jì)就會(huì)是亂碼,要調(diào)整.
有些人在調(diào)整的時(shí)候,說(shuō)我改了系統(tǒng)環(huán)境變量,結(jié)果造成用戶內(nèi)容顯示亂碼,無(wú)非解決的方法就是兩個(gè):
1.用iconv轉(zhuǎn)化為目前的編碼
2.用你原來(lái)使用的編碼
看了這兩條,你肯定要明確,你原來(lái)的字符編碼是如何的.說(shuō)來(lái)說(shuō)去,無(wú)非就是LANG SUPPORTED 和你原文件字符集的編碼:)當(dāng)然了locale -a你可以看看目前系統(tǒng)里支持的字符集,如果不支持,還要安裝奧.

來(lái)源:網(wǎng)絡(luò)搜集//所屬分類(lèi):Linux教程/更新時(shí)間:2011-12-08
相關(guān)Linux教程