【问题标题】:are unicode characters u+80 - u+BF valid? [closed]unicode 字符 u+80 - u+BF 有效吗? [关闭]
【发布时间】:2021-10-15 01:02:25
【问题描述】:

来自Code Point Table

Code point <-> UTF-8 conversion First code point    Last code point     Byte 1  Byte 2  Byte 3  Byte 4
U+0000  U+007F  0xxxxxxx    
U+0080  U+07FF  110xxxxx    10xxxxxx    
U+0800  U+FFFF  1110xxxx    10xxxxxx    10xxxxxx    
U+10000     [nb 2]U+10FFFF  11110xxx    10xxxxxx    10xxxxxx    10xxxxxx

表格不清楚,因为u+80二进制是10000000b,这将是无效的(不以110b开头)。我会认为它会是 0xc280?

我的印象是 u+80 - u+bf 都是无效的起始序列。但是,unicode 表声明它们是为一字节控制字符保留的有效代码点。

有人可以帮我澄清一下吗?

【问题讨论】:

    标签: unicode-string


    【解决方案1】:

    您将 Unicode 代码点与它们在 UTF-8 中的表示混淆了。

    Unicode 代码点 U+0080 在 UTF-8 中由一个两字节序列表示,二进制 11000010 10000000,十六进制 C2 80。

    (请注意,我们不会为 UTF-8 的单个字节写 U+xx)。

    这是什么

    U+0080  U+07FF  110xxxxx    10xxxxxx  
    

    告诉你的是,对于 0080 到 07FF 范围内的代码点,11 个有效位分布在等效 UTF-8 值的两个字节中的 11 个“x”位上。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-06
      • 1970-01-01
      • 2018-11-03
      • 2021-12-12
      相关资源
      最近更新 更多