Unicode的前世今生

文章翻译自-Ned Batchelder的pragmatic Unicode(https://nedbatchelder.com/text/unipain.html)

补充:字节和字符的关系。(译者)
字节:计算机的物理存储单元。
字符:人类社会自然语言(与机器语言相区分)中最小单元。英文中就是一个字母,中文就是一个汉字。至于一些错误的概念说一个字符是两个字节。主要是受到早期的编码格式的影响(早期的中文编码使用了两个字节表示一个汉字。而ascii表和Unicode码都是使用一个字节代表一个英文字母)

The first Fact of Life: everything in a computer is bytes. Files on disk are a series of bytes, and network connections only transmit bytes. Almost without exception, all the data going into or out of any program you write, is bytes.
常识1:计算机中的一切都是字节。文件和磁盘中存储的是一连串的字节,网络传输的东西也是字节。几乎可以这样说,如果没有什么意外,你写的任何程序中的所有输入输出数据都是字节。(之前一直以为都是按照位数传递和存储的)

Fact of Life #2 is that there are way more than 256 symbols in the world's text.
常识2:这个世界超过了256个字符。
补充:刚一开始asiic码只有94个(33到126),iso 8859-1添加了95个(161-256)
windows 又添加了27个,

Unicode assigns integers, known as code points, to characters.The higher the code point value, the more bytes it needs in UTF-8.
Unicode分配整数(就是我们通常熟知的码位)来表示字符。所以码位越大,utf-8编码的字符需要的字节数就越多。所以utf-8编码的码表中,一个字符使用几个字节完全不确定,有可能是1,2,3,4。

ASCII characters are one byte each, using the same values as ASCII, so ASCII is a subset of UTF-8.(这句话的含义及其不清楚)
以utf-8编码的ascii码中的字符的码数需要一个字节表示,与ascii码表的值相同,所以ascii码表是以utf-8编码的码表的子集。(这句话翻译费了很多时间,之前看其他资料,总给人理解好像utf-8也是一个码表,其实utf-8只是一个编码方式。Unicode是一个码表。)在ascii中是0x48(72),在Unicode中完全一样。

你可能感兴趣的:(Unicode的前世今生)