■前言
暫且不談 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之間的區別