【问题标题】:Are unicode characters better or more semantic than the simple text versions?unicode 字符是否比简单文本版本更好或更语义化?
【发布时间】:2011-03-23 17:05:32
【问题描述】:

当我从大多数网站和 pdf 复制/粘贴文本时,以下字符几乎总是在 unicode 等效项中:

  • 双引号:“是”和“(“”
  • 单引号:'是'和'(‘’
  • 省略号:……是……(…

我理解那些没有 unicode 就无法表示的东西,比如 © 和 ¢,但即使是这些,我也想知道。

什么时候应该使用这些 un​​icode 等价物?它们比不使用它们更具语义性吗?它们是否可以更好地被设备解释(复制/粘贴/打印)?我总是觉得获取那些引号和省略号字符很烦人,因为使用 textmate + 编程时,您不会使用它们。

【问题讨论】:

  • 当您说unicode 时,实际上是指HTML entity。 Unicode 是完全不同的东西。
  • Álvaro G. Vicario:实际上,我很确定 viatropos 表示 unicode,并且提到了 HTML 实体以阐明字符的含义。
  • @pinkgothic - 你可能是对的。为了以防万一,我已恢复为原始标签。

标签: html unicode


【解决方案1】:

什么时候应该使用这些 un​​icode 等价物?它们比不使用它们更具语义性吗?

请注意,这些不是“Unicode 等价物”。这些字符在 Unicode 以外的许多字符集中都可用,它们与您建议的替代字符完全不同。

在排版中,单引号和双引号的左右版本是正确的。它们为印刷媒体中使用多年的那些字符提供了传统的外观。省略号字符为使用连续句号字符时不会自然出现的省略号提供正确的间距。所以使用所有这些的原因是为了让文本正确地出现在人类读者面前。

设备是否能更好地解释它们(复制/粘贴/打印)?

任何使用任何字符集的系统都应设计为正确处理该字符集。如果文本以 Unicode 编码,那么任何最近的系统(至少过去 15 年)都应该能够处理它,因为 Unicode 是所有现代系统事实上的标准字符集。

并非所有符合 Unicode 的系统都能正确显示所有字符。这将取决于可用的字体,甚至是使用这些字体的渲染系统。但是任何符合 Unicode 的系统都可以传输原样的字符(例如在复制和粘贴操作中)。

我总是觉得获取那些引号和省略号字符很烦人,因为在 textmate + 编程中,你不会使用它们。

将英语(或任何语言)文本直接复制到程序中而不必为该文本添加单独的分隔符是不常见的。但是大多数现代编程语言在处理文本后不会有任何困难,一旦它被属性分隔。

任何不能正确处理 Unicode 的系统都应该更新。传统的字符编码在未来将不再存在。

【讨论】:

    【解决方案2】:

    我认为有一个简单的解释:MS Word 会在您键入时自动转换这些字符/序列,并且互联网上的很多文本都是从这个文本编辑器复制的。

    我从其他作者那里获得的大部分文章都是以 .doc 文件形式发送的,我必须对其进行转换。通常,它包含您提到的这些字符。

    我还要添加一个:许多不同类型的破折号而不是连字符。还有低开头的双引号(在一些欧洲语言中可以看到)。

    我通常让它们留在文本中(我所有的页面都是 unicode)。在玩正则表达式等时记住它很重要(尤其是破折号可能很棘手且难以发现)。

    【讨论】:

    • 但我的意思是,MS Word 这样做是否更好?为什么要转换引号和破折号,为什么不直接留下它们?
    • @viatropos,我不是排版专家。就像ligatures 一样,它只是历史上已经做了很长时间并且仍然在做的事情,通常是出于语言/地区的原因,或者只是为了文本的“好”。 (破折号/连字符是一个例外,因为它们各自具有不同的语法含义)
    • @viatropos — 如果您在自己的文档中不喜欢 MS Word 自动替换,可以在程序设置中禁用它。 (我通常禁用所有“自动更正”,因为我喜欢完全控制文本。然后我使用 ALT-数字-键盘组合输入正确的引号和破折号。)
    • 我使用的键盘布局带有直接可用的智能引号和连字符,因此我可以在我真正需要它们时键入它们,并且在我需要它们时仍然可以得到直引号。自动替换功能永远不会正确!
    【解决方案3】:

    HTML 实体有三重用途:

    1. 能够使用不属于文档字符集的字符,例如,在 ISO-8859-1 文档中插入欧元符号。

    2. 转义在 HTML 中具有特殊含义的字符,例如尖括号。

    3. 使键入不在键盘中或编辑器不支持的字符变得更容易,例如版权符号。

    更新:

    我的信息是正确的,但我怀疑我回答错了问题...

    【讨论】:

    • 我对此表示赞同(然后回答了另一个问题),因为我认为这是对该问题的合理解释的绝佳答案。 :-)
    【解决方案4】:

    在网络上,我认为标记增加了语义,而内容没有。因此,在这种情况下使用哪个并不重要。

    排版师会坚持使用“”,程序员不在乎,只使用常规的旧引号"

    这里的关键是互操作性。有不同的编码方案。正如我们都曾遭受的那样,人们将内容从 WORD 粘贴到使用 windows-1251 编码的编辑器中。当您通过 AJAX 提供此内容时,通常会中断,因为 AJAX 默认使用 UTF-8 编码。

    Office 2010 现在允许以 UTF-8 格式保存文档。此外,数据库具有不同的 unicode 编码方案。最好的办法是端到端使用 UTF-8。

    【讨论】:

      【解决方案5】:

      当您复制包含特殊字符的粘贴文本时,它们将保持原样。如果字符与网页使用的字符集匹配,则非常好。

      HTML 实体只是为了方便在任何字符集中生成特定字符。键盘往往没有键来获取像© 这样的符号,因此 HTML 实体是一种快捷方式。

      我将概括并说大部分时间内容是 UTF-8(如果我错了,请纠正我)。复制的字符通常被正确复制并且一切正常,如果它们 没有 正确复制,或者字符集可能会发生变化,或者您在 i18n 支持之后,请使用 HTML 或 XML 实体.否则,保持原样,浏览器会正常显示。

      【讨论】:

        猜你喜欢
        • 2017-05-10
        • 2011-01-07
        • 1970-01-01
        • 2015-12-21
        • 2015-07-08
        • 1970-01-01
        • 2018-02-27
        • 1970-01-01
        • 2011-01-31
        相关资源
        最近更新 更多