資源描述:
《linux中文亂碼問題》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、1、linuxssh連接亂碼問題原文件內(nèi)容為:LANG="zh_CN.UTF-8"SUPPORTED="zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en"SYSFONT="latarcyrheb-sun16"有的系統(tǒng)只有:LANG="zh_CN.UTF-8"更改為:LANG="zh_CN.UTF-8"LANG="zh_CN.GB18030"LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"SUPPORTED="zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en"SYSFONT="latarc
2、yrheb-sun16"Linux中文亂碼問題最近,公司在XP系統(tǒng)于LINUX之間傳數(shù)據(jù)時(shí)出現(xiàn)了中文亂碼問題!首先,解釋一下字符集:漢字編碼:*GB2312字集是簡(jiǎn)體字集,全稱為GB2312(80)字集,共包括國標(biāo)簡(jiǎn)體漢字6763個(gè)。*BIG5字集是臺(tái)灣繁體字集,共包括國標(biāo)繁體漢字13053個(gè)。*GBK字集是簡(jiǎn)繁字集,包括了GB字集、BIG5字集和一些符號(hào),共包括21003個(gè)字符。*GB18030是國家制定的一個(gè)強(qiáng)制性大字集標(biāo)準(zhǔn),全稱為GB18030-2000,它的推出使?jié)h字集有了一個(gè)“大一統(tǒng)”的標(biāo)準(zhǔn)。ASCII:AmericanStandardCodeforInformationInter
3、change,美國信息交換標(biāo)準(zhǔn)碼。目前計(jì)算機(jī)中用得最廣泛的字符集及其編碼,由美國國家標(biāo)準(zhǔn)局(ANSI)制定。它已被國際標(biāo)準(zhǔn)化組織(ISO)定為國際標(biāo)準(zhǔn),稱為ISO646標(biāo)準(zhǔn)。ASCII字符集由控制字符和圖形字符組成。在計(jì)算機(jī)的存儲(chǔ)單元中,一個(gè)ASCII碼值占一個(gè)字節(jié)(8個(gè)二進(jìn)制位),其最高位(b7)用作奇偶校驗(yàn)位。所謂奇偶校驗(yàn),是指在代碼傳送過程中用來檢驗(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í)
4、現(xiàn)方式不同于編碼方式。一個(gè)字符的Unicode編碼是確定的,但是在實(shí)際傳輸過程中,由于不同系統(tǒng)平臺(tái)的設(shè)計(jì)不一定一致,以及出于節(jié)省空間的目的,對(duì)Unicode編碼的實(shí)現(xiàn)方式有所不同。Unicode的實(shí)現(xiàn)方式稱為Unicode轉(zhuǎn)換格式(UnicodeTranslationFormat,簡(jiǎn)稱為UTF)。*UTF-8:8bit變長(zhǎng)編碼,對(duì)于大多數(shù)常用字符集(ASCII中0~127字符)它只使用單字節(jié),而對(duì)其它常用字符(特別是朝鮮和漢語會(huì)意文字),它使用3字節(jié)。*UTF-16:16bit編碼,是變長(zhǎng)碼,大致相當(dāng)于20位編碼,值在0到0x10FFFF之間,基本上就是unicode編碼的實(shí)現(xiàn),與CPU字序
5、有關(guān)。注意:ASCIIchar(2);UTF-8寬字符wchar4倍。兼容性最好的編碼就是UTF-8!畢竟GBK/GB2312是國內(nèi)的標(biāo)準(zhǔn),當(dāng)我們大量使用國外的開源軟件時(shí),UTF-8才是編碼界最通用的語言。在Linux中通過locale來設(shè)置程序運(yùn)行的不同語言環(huán)境,locale由ANSIC提供支持。locale的命名規(guī)則為<語言>_<地區(qū)>.<字符集編碼>,如zh_CN.UTF-8,zh代表中文,CN代表大陸地區(qū),UTF-8表示字符集。在locale環(huán)境中,有一組變量,代表國際化環(huán)境中的不同設(shè)置:1.???LC_COLLATE定義該環(huán)境的排序和比較規(guī)則2.???LC_CTYPE用于字符分類和
6、字符串處理,控制所有字符的處理方式,包括字符編碼,字符是單字節(jié)還是多字節(jié),如何打印等。是最重要的一個(gè)環(huán)境變量。3.???LC_MONETARY貨幣格式4.???LC_NUMERIC非貨幣的數(shù)字顯示格式5.???LC_TIME時(shí)間和日期格式6.???LC_MESSAGES提示信息的語言。另外還有一個(gè)LANGUAGE參數(shù),它與LC_MESSAGES相似,但如果該參數(shù)一旦設(shè)置,則LC_MESSAGES參數(shù)就會(huì)失效。LANGUAGE參數(shù)可同時(shí)設(shè)置多種語言信息,如LANGUANE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"。7.???LANGLC_*的默認(rèn)值,是最低級(jí)別的設(shè)置
7、,如果LC_*沒有設(shè)置,則使用該值。類似于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=