■前言
暂且不谈 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之间的区别