【问题标题】:Is there a unicode range that is a copy of the first 128 characters?是否有一个 unicode 范围是前 128 个字符的副本?
【发布时间】:2012-03-01 11:19:46
【问题描述】:

我希望能够在不被计算机解释的情况下将其他字符放入文本中。所以想知道是否有一个范围被定义为映射到与范围 0-0x7f(ascii 范围)相同的字形等。

请注意,我声明 0-0x7f 范围与 ascii 相同,所以问题不是什么范围映射到 ascii。

我在问是否有另一个范围也映射到相同的字形。渲染时的 I.E 看起来是一样的。但在解释时可能会被视为不同的代码。

所以我可以写

打印“你好“世界”

粗体字符避免使用 0-0x7f(ascii 范围)

补充: 我的意思是单应性和行为上,除了代码点不同之外,一切都一样。我正在寻找整个 ascii/128bit 集,直接映射(添加到它们的偏移量)。

原因:避免被任何使用某些 ascii 字符作为其语言的一部分但允许在文字字符串中使用任何 unicode 字符的语言进行解释,例如(当 uft-8 编码时)C、html、css、……

我试图修复“无保留字”/“单词颜色”(字符串文字一种颜色,另一种关键字,另一种变量,另一种数字等)的想法,以便字符串文字或变量名(虽然不是在这种情况下)可以包含任何字符。

【问题讨论】:

  • “计算机解释”是什么意思?您正在处理文本或正在处理其他数据。将它们混合在用于文本的内容(例如字符串)中是一个坏主意。
  • 一些文本是使用字形呈现的。一些文本被解释。例如打印“你好世界”;在某些时候,文本 hello world 将被呈现为字形,但其余部分只是被解释。

标签: text unicode


【解决方案1】:

我将问题解释为“是否存在一组与低 7 位 ASCII 集同应的代码点”。答案是否定的。

有些代码点通常以单应方式呈现(例如,西里尔大写字母 U+0410 在许多字体中看起来与 ASCII 65 相同,并且在大多数支持此代码点的字体中非常相似),但它们是不同的代码点,具有不同的语义。类似地,有些代码点基本上呈现相同,但具有一组特定的语义,例如不间断空格 U+00A0,其呈现与 ASCII 32 相同,但被指定为具有特定的换行属性;或右单引号 U+2019,它是一个明确的引号,而不是其双胞胎 ASCII 39,即“撇号”。

但总而言之,基本 ASCII 块中的许多符号与另一个代码块中的同形异义词不一致。不过,您也许可以为您的例句找到同形异义词或近同形异义词;我会研究 IPA 音标以及希腊语和西里尔语块。

【讨论】:

    【解决方案2】:

    正如@tripleee 所描述的,对所提问题的回答是“否”,但如果目的是诡计或某种乐趣,则以下注释可能是相关的:

    除空格外的可打印 ASCII 字符已在 U+FF01 到 U+FF5E 重复,但这些是用于 CJK 文本的全角字符。它们的形状是(并且应该是)不同的:你好   世界。 (您的浏览器可能无法呈现它们。)因此它们与 ASCII 字符并不是真正的单应性,但可以用于某些特殊目的。 (我不知道这里的目的是什么。)

    【讨论】:

    • 我正在阅读 samba 文档,其中提到将一些 dos/ms-windows 保留字符(例如 )重新映射到 0xf000 范围。我认为这个答案解释了它。
    • @richard,我认为这种映射是不同的。 U+F000 位于私人使用区 (PUA),从 U+E000 到 U+F8FF,这意味着它们是可以用于任何您喜欢的地方,由相关方之间的特别协议。它们甚至可以用于普通字符的副本,或者用于不作为单独编码的标准字符存在的变体。 U+FF01 到 U+FF5E 范围不同(标准字符,不是 PUA)。
    【解决方案3】:

    取决于您使用的 Unicode 标准。

    在 UTF-8 中,前 128 个字符具有精确的 ASCII 对应物作为代码编号。在 UTF-16 中,前 128 个 ASCII 字符介于 0x0000 和 0x007F(2 个字节)之间。

    【讨论】:

    • 呃,只有 一个 Unicode 标准,它的定义方式是前 256 个字符与拉丁语 1 相同,这也意味着前 128 个字符是与 ASCII 相同。无论您使用何种转换格式,Unicode 代码点本身始终为 21 位。当然,后者控制它们如何映射到字节。
    猜你喜欢
    • 1970-01-01
    • 2020-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    相关资源
    最近更新 更多