考虑Unicode图表中C1控件和Latin-1补充的unicode图表.如果一个字符有一个字形,则显示它,如果它没有字形,则给出一个特殊的虚线和符号标记或标识符.在这种情况下,0080和0081似乎都有一些"无效标记",我认为这是"XXX"的意思.这是什么意思?

其次,具有存储到值0x80(十六进制)或128(十进制)字符串中的值的Unicode感知字符串类型的行为应该是什么?它应该转换为其他点,例如这样的映射:
我在其MBCS和Unicode类型的特定语言或操作系统API实现中遇到的神奇的"非正交性",以及Java的有趣处理,让我想知道,U + 0080字符的真正用途是什么?这个引用链接让我感到困惑,因为它表明Java将此字符视为欧元符号(ANSI代码页与Unicode单向友好性),但它的名称<control>不是我知道如何处理的.维基百科说它就在PAD 这里
谁能帮我?我是否在Unicode学校跳过基础概念日?我错过了什么?
更新 0080到0098之间的块是不可打印的控制字符.我知道这个.我想知道XXX是什么意思,当我用这个值处理unicode数据时,我怎么想到这个字符呢?
根据Ch的解释.17(关于代码图表)的Unicode标准,p.在图573中,通过"虚线框约定",没有可见渲染的字符"由方形虚线框表示.此框包含角色名称的简短助记符缩写."问题中提到的字符是控制字符,在C1控制区域中.
Unicode标准说,在Ch.16,p.544,关于C0和C1控制:"Unicode标准规定了这些代码点的完整交换,既不增加也不减去它们的语义.控制代码的语义通常由使用它们的应用程序确定.但是,在没有特定应用程序用途的情况下,它们可以根据ISO/IEC 6429:1992中规定的控制功能语义进行解释."方形虚线框中的缩写反映了ISO/IEC 6429:1992中给出的含义.
C1控制区域中的某些代码点未在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和相关规范中形式化.
| 归档时间: |
|
| 查看次数: |
1748 次 |
| 最近记录: |