Unicode图表中的指标XXX是什么意思

Unicode图表中的指标XXX是什么意思,unicode,Unicode,考虑中C1控件的unicode图表和拉丁语-1补充。如果一个字符有一个标志符号,则显示它;如果它没有标志符号,则给出一条特殊的虚线和符号标记或标识符。在本例中,0080和0081似乎都有一些“无效标记”,我认为这就是“XXX”的意思。这就是它的意思吗 第二,如果Unicode感知字符串类型的值存储在值0x80(十六进制)或128(十进制)的字符串中,那么该字符串类型的行为应该是什么?是否应将其转换为其他点,如以下映射: 许多ANSI代码页中的字节值128是欧元标记 存储128位小数相当于存储

考虑中C1控件的unicode图表和拉丁语-1补充。如果一个字符有一个标志符号,则显示它;如果它没有标志符号,则给出一条特殊的虚线和符号标记或标识符。在本例中,0080和0081似乎都有一些“无效标记”,我认为这就是“XXX”的意思。这就是它的意思吗

第二,如果Unicode感知字符串类型的值存储在值0x80(十六进制)或128(十进制)的字符串中,那么该字符串类型的行为应该是什么?是否应将其转换为其他点,如以下映射:

  • 许多ANSI代码页中的字节值128是欧元标记
  • 存储128位小数相当于存储U+20AC
我在特定语言或操作系统API实现MBCS和Unicode类型时遇到的神奇的“非正交性”,以及Java有趣的处理,让我想知道,U+0080字符的真正用途是什么?这让我感到困惑,因为Java将这个字符视为欧元符号(ANSI代码页到Unicode单向友好),但它的名称是
,我不知道如何处理它。维基百科说它是
PAD

有人能帮我吗?我是否跳过了Unicode学校的基础概念日?我错过了什么


将块从0080更新为0098是不可打印的控制字符。我知道这么多。我想知道的是XXX是什么意思,当我处理包含此值的unicode数据时,我该如何看待此字符?

根据第17章(关于代码图)的解释,p。573,根据“虚线框约定”,没有可视呈现的字符“由方形虚线框表示。该框围绕字符名称的简短助记缩写。”问题中提到的字符是C1控制区域中的控制字符

Unicode标准在第16章第。544,关于C0和C1控制:“Unicode标准规定了这些代码点的完整交换,既不增加也不减少其语义。控制代码的语义一般由使用它们的应用程序决定。但是,如果没有特定的应用程序用途,它们可以根据控制代码解释ISO/IEC 6429:1992中规定的术语语义。”方形虚线框中的缩写反映了ISO/IEC 6429:1992中给出的含义

ISO/IEC 6429:1992中未定义该区域中的某些代码点。对于这些代码点,例如U+0080,代码图中的“XXX”代替了助记缩写。因此,这表明Unicode标准没有提及这些代码点的任何含义,除了它们是具有某些抽象属性的控制字符之外

因此,“XXX”不是指“无效”,而是指“完全未定义的含义”。这些代码点的含义可以通过各种标准或其他约定来定义,只要它们与一般定义一致——例如,将U+0080定义为图形字符是不兼容的

在任何字符级处理中,不得替换或省略此类代码点;实际更改数据的应用程序可以执行任何他们想要的操作,但任何常规转换例程(例如)必须保留这些代码点(字符)完整。它们不能被视为格式错误或无效;但应用程序可能会将它们视为未定义。根据Unicode原则,不知道字符是可以的,但不会完全错误


这与Windows-1252等8位代码中0x80等字节的含义无关。但如果发送标记为ISO-8859-1编码的数据(例如0x80原则上是U+0080)对于web浏览器来说,它实际上会将其视为Windows-1252编码。原因是,像U+0080这样的字符实际上从未在ISO-8859-1数据中使用;在ISO-8859-1标记的数据中出现0x80实际上总是Windows-1252标记错误或数据混乱,无法进行有意义的处理。因此,浏览器采取实际的方法并将ISO-8859-1视为windows-1252;这已在HTML5和相关规范中正式化。

它只是表示“未分配”。一个合适的Unicode解码器应该用U+FFFD来代替它们。@HansPassant:但是代码点U+0080和U+0081被分配给了没有名字的字符。嗯,这些字符通常都没有穿衣服。为什么有人投票以非主题的方式结束呢?Unicode定义如何,人们在Unico中如何处理这些定义取消感知应用程序脱离主题?字节0x81如何?它不是由ISO-8859-1或Windows-1252定义的。(我这样问是因为我在现实世界的用户输入中遇到了这个问题。)我能找到的唯一描述是“高八位字节预设(HOP)”-无论这意味着什么。0x81在Windows-1252中未定义,保留给ISO-8859-1中的控制代码。区别在于,Windows-1252可以通过将图形字符分配给0x81来扩展,而ISO-8859-1则不会。C1控件有各种控制代码分配(0x80到0x9F),但它们通常不定义0x81。它实际上是一个未使用的位置。这意味着,如果您在数据流中遇到它,假定它是某些8位编码中的字符,则表示某种类型的数据错误。