U 001A字符频繁出现在与字符编码有关的错误消息中。什么是U 001A字符?
U 001A在Unicode标准中被定义为具有名称SUBSTITUTE的控制字符,并且它属于以下特征的组,在
chapter 16标准中:“Unicode标准中有65个代码点与C0兼容
和ISO / IEC 2022框架中定义的C1控制代码[…] Unicode标准规定了这些代码点的完整交换,
增加或减去他们的语义。控制代码的语义通常由使用它们的应用程序决定。但是,没有
具体应用使用,可以根据ISO / IEC 6429:1992中规定的控制功能语义进行解释。
和ISO / IEC 2022框架中定义的C1控制代码[…] Unicode标准规定了这些代码点的完整交换,
增加或减去他们的语义。控制代码的语义通常由使用它们的应用程序决定。但是,没有
具体应用使用,可以根据ISO / IEC 6429:1992中规定的控制功能语义进行解释。
ISO 6429实际上相当于ECMA 48,它将该代码提供为短名称SUB,并将其定义如下:“SUB用于已发现无效或错误的字符。 SUB旨在
以自动方式引入。“这反映了definition of this control code in Ascii。
因此,通常,U 001A可以用于指示在所应用的字符编码中没有解释的所声称的字符数据中的字符级数据错误,诸如字节的存在。因此,这意味着“错误的字符数据”,但更恰当地说,“在尝试将数据解释为字符时,”格式错误的数据“。然而,在Unicode中,UFFFD REPLACEMENT CHARACTER更合适,因为它具有特定的Unicode语义。
由于该问题已经被标记为“xml”,需要注意的是,在XML 1.0中,U 001A被禁止,按照2.2 Characters。注意,注释“任何Unicode字符,不包括代理块,FFFE和FFFF”都是误导(但意见不规范); U 001A是Unicode字符,尽管它不是图形字符,并且其效果未在Unicode标准中定义。