各种不同的编码 无非就是效率 最大化。
我猜测编码的进化流程:
ASCII(American Standard Code for Information Interchange)----满足了美国和西方国家。但是只能传输英文。------->>>
Ansi(American National Standards Institute)------后来各个国家眼热 为了自己的安全,因为要战争吗,设计了自己的一套。可以传输英文和本土语言------->>>
Unicode(Universal code 也可以称UTF-16)-------------后来不打仗了,各个国家要合作共赢,于是国际组织设计了一套包容全球语言的编码,这种编码的最小字节是2个字节,具体哪个国家的语言再前,哪个国家再后,要看这个国家的实力了,非洲没实力,所以只能靠后排,那么就会导致一个非洲英文字母a 都需要4个字节,操蛋。那个时候的中国有点实力还好,大多数常用中文70%只占2个字节,不常用的(30%)占3个字节------------>>>
UTF-8(8-bit Unicode Transformation Format)-------unicode的设计目的是为了用一种设计方式,兼容全球语言,方便全球通信,但是设计的时候,我猜测有过争执,到底 最小字节是1还是2呢。这个是没有答案的,看对谁有利了。如果最小用一个字节 则对西方国家有利。如果最小用2个字节 则对除了西方国家 的其它国家都有利。举例:东方国家 中国 日本 韩国 非洲国家 中东地区的国家 等等。unicode 即UTF-16 用最小2个字节 是一种适中的方法,就是说 牺牲一点西方国家 但是 能兼顾到很多国家 。就这 西方国家不满意了,毕竟 西方国家是贪婪的 资本主义。他们认为 不应该牺牲 他们 来兼顾更多的国家。于是 他们又发明了 或者说 unicode的另一种表达方式 用 最小1个字节开始 来表达。这样 对西方国家 就有利。因为英文只占一个字节,但是对其它国家都不利,因为会导致 其它国家的排序 更靠后。比如中文UTF-8下 50%的中文占两个字节,30%占3个字节,20%占4个字节。
所以根据情况来选择了,如果你是西方国家 不想走向国际的话 就只用 ascii就行 1个字节。如果要走向国际 有两种选择要么UTF-8 要么UNICODE,如果你以本土为主 其它国家为辅 可以UTF-8,如果以其它国家为主
可以UNICODE。
如果你是东方国家 比如中国,不想走向国际 挣很多国家的钱的话 可以用ansi 即GBK 最节省资源。如果你要走向国际 要么UTF-8 要么UNICODE ,中国人口多 中国为主的话 可以 UNICODE 西方为主的话 可以 UTF-8.
凡事有利有弊 ,自己根据情况 酌情选择。
到点了 得赶紧回去吃饭了。