美文网首页
Unicode的前世今生

Unicode的前世今生

作者: Wolfog | 来源:发表于2017-08-24 23:18 被阅读0次

    文章翻译自-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的前世今生

          本文链接:https://www.haomeiwen.com/subject/zpfydxtx.html