an example of Ascii using 问号 as example

136 阅读1分钟

Created by Wang, Jerry on Sep 25, 2015

根据Ascii表,问号的code为63:


若记事本里只存储了一个问号字符:


3F的十进制正好是63:

若改为big5:

内容不变。

UTF-8 - 不变。

多字节的Unicode编码方式定义了一个"字节顺序标记(Byte Order Mark)",它是一个特殊的非打印字符,你可以把它包含在文档的开头来指示你所使用的字节顺序。对于UTF-16,字节顺序标记是U+FEFF。如果收到一个以字节FF FE开头的UTF-16编码的文档,你就能确定它的字节顺序是单向的(one way)的了;如果它以FE FF开头,则可以确定字节顺序反向了。

如果记事本里存成


在ABAP debugger 3F00: ( UTF-16)

UTF-8使用一至四个字节为每个字符编码:

  1. 128个US-ASCII字符只需一个字节编码(Unicode范围由U+0000至U+007F)。
  2. 带有附加符号的拉丁文、希腊文、西里尔字母、亚美尼亚语、希伯来文、阿拉伯文、叙利亚文及它拿字母则需要二个字节编码(Unicode范围由U+0080至U+07FF)。
  3. 其他基本多文种平面(BMP)中的字符(这包含了大部分常用字)使用三个字节编码。
  4. 其他极少使用的Unicode辅助平面的字符使用四字节编码。
    这解释了为什么? ( 63) 在UTF8 编码格式下仍然是3F的原因。

要获取更多Jerry的原创文章,请关注公众号"汪子熙":