文件編碼 ANSI、GBK、GB2312、MS936、MS932、SJIS、Windows-31 、EUC-JP 、EBCDIC 等等之間的區別與聯繫

■前言

暫且不談 UTF-8,Unicode (UTF-8只是Unicode的一種實現方式)

https://blog.csdn.net/sxzlc/article/details/106084402  ← win10下,以十六進制形式查看文件

關於文件編碼的描述,有很多種描述方式

中文:ANSI,GBK,GB2312, MS936

日文:ANSI, MS932,SJIS(SHIFT JIS),Windows-31J,EUC-JP,ISO-2022-JP

英文:ANSI, ASCII,MS437

還有IBM 大機 Mainframe : EBCDIC

         (EBCDIC有好多種編碼:1140,500,20290 )

■分步說明1

先理解什麼是 ANSI 

我們使用記事本保存文件時,都有這麼一個選項。

不論你的系統時中文系統,或者日文系統。

ANSI 是 的縮寫 (美國國家標準學會(American National Standards Institute: ANSI))

ANSI是一種字符代碼,爲使計算機支持更多語言,

通常使用 0x00~0x7f 範圍的1 個字節來表示 1 個英文字符。

超出此範圍的使用0x80~0xFFFF來編碼

不同的國家和地區制定了不同的標準,由此產生了 GB2312、GBK、GB18030、Big5、Shift_JIS 等各自的編碼標準。

也就是說,

 ・在中文系統中,使用ANSI保存,編碼集是 GBK(MS936)

 ・在日文系統中,使用ANSI保存,編碼集是 Shift_JIS(MS932)

即,對於不同語言來說,ANSI對應的編碼是不同的   !!!

https://baike.baidu.com/item/ANSI/10401940?fr=aladdin ← ANSI 百度百科

https://www.cnblogs.com/malecrab/p/5300486.html ← 什麼時ANSI編碼 各個國家語言的ANSI編碼

ANSI對應的是 cmd 命令行中 chcp 的編碼code。

https://blog.csdn.net/sxzlc/article/details/106270405 ← 各個語言的,頁面編碼一覽 chcp一覽

這也是,爲社麼有的文件,我們使用chcp後,再次查看,就不再亂碼的原因

 

 

■分步說明2

●GB2312與GBK的區別
・GB2312 :前面的一個字節(高字節)從0xA1用到 0xF7,後面一個字節(低字節)從0xA1到0xFE,這樣就可以組合出大約7000多個簡體漢字了
・GBK: 不再要求低字節一定是127號之後的內碼,只要第一個字節是大於127就固定表示這是一個漢字的開始,
            GBK 包括了 GB2312 的所有內容,同時又增加了近20000個新的漢字(包括繁體字)和符號。

---  比如下面的【天】,GB2312 編碼表中查得,可以看到編碼表,低字節 從A1 開始

https://blog.csdn.net/sxzlc/article/details/7060611 ← GB2312 編碼表

天 

CC EC

---

https://blog.csdn.net/ldanduo/article/details/8203532 ← 此文章中,記述了GB2312 與 GBK 的區別

 

●MS932,SJIS(SHIFT JIS),Windows-31J 之間的關係

●windows-31J
Shift_JIS 的文字集合基本是按照JIS X 0208規定的。
但實際上各個廠商各自進行擴展,包含了大量重複的、規格以外的文字。
因此Windows在本來的 Shift_JIS的文字集合之外,又增加了NEC擴展、IBM擴展所包含的文字。
這種規格和實際情況的分歧長期存在,隨着windows-31J的規格化,混亂情況有所改善。

https://www.iteye.com/blog/gohands-937775 ← Shift_JIS、EUC-JP、ISO-2022-JP這三種編碼的區別

https://blog.csdn.net/sxzlc/article/details/106267866  ← 個人對Shift_JIS 的理解

 

http://una.soragoto.net/topics/13.html ← 此文章中,記述了Shift-JIS的發展 (日文原文)

---

●SJIS(SHIFT JIS)  chcp 932

    https://blog.csdn.net/sxzlc/article/details/106270405 ← 各個語言的,頁面編碼一覽 chcp一覽
・它被命名爲答Shift_JIS的原因,是它在放置全角字符時,要避開原本在0xA1-0xDF放置的半角假名字符。
・在微軟及IBM的日語電腦系統中,即使用了這個編碼表。這個編碼表稱爲CP932。

 http://charset.7jp.net/sjis.html  ← SJIS編碼集

---

 

■分步說明3

●SJIS以外的日文編碼 

・EUC-JP是被Linux和Solaris廣泛地使用的文字編碼。 chcp 20932

     https://blog.csdn.net/sxzlc/article/details/106270405  ← 各個語言的,頁面編碼一覽 chcp一覽
・ISO-2022-JP主要被Email使用的文字編碼。 只使用7個bit,第8個bit不使用,所以不適合程序中的字符串處理,主要使用在網絡中的數據交換中。

 

■分步說明4

EBCDIC

IBM 大機的編碼語言 

   誕生於 1963 - 1964

早於 ASCII 編碼,與ASCII是不同的編碼,(英文數字對應的二進制是不相同的)

           ASCII 誕生於 1967, 最後一次修正在1986年

https://blog.csdn.net/chy555chy/article/details/52065250

chcp 500

chcp 20290

 https://blog.csdn.net/sxzlc/article/details/106270405  ← 各個語言的,頁面編碼一覽 chcp一覽

 

■知識擴展

・Solaris 是Sun Microsystems研發的計算機操作系統。它被認爲是UNIX操作系統的衍生版本之一

Solaris [soʊˈlɛrɪs]  當然,sun被oracle收購後,已經是oracle的東西了。

・6個Unix的變種 

http://blog.chinaunix.net/uid-20832381-id-1743740.html  ← linux與UNIX(solaris/aix/hp-ux)的比較

===

SGI Irix、
IBM AIX、
Compaq Tru64 Unix、
Hewlett-Packard HP-UX、
SCO UnixWare、
Sun Solaris

===

・linux不是Unix,Unix是商業軟件,Linux是開源的

https://blog.csdn.net/sxzlc/article/details/103652857  ← Linux Unix之間的區別

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章