unicode字符比简单文本版本更好还是更具语义?

时间:2011-03-23 17:05:32

标签: html unicode

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

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

我理解那些没有unicode(如©和¢)就无法表示的内容,但即使是那些,我也不知道。

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

5 个答案:

答案 0 :(得分:4)

  

什么时候应该使用这些unicode等价物?它们是否比不使用它们更具语义?

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

在排版中,单引号和双引号的左右版本都是正确的。它们为已经在印刷媒体中使用多年的字符提供了传统外观。省略号字符为省略号提供了正确的间距,当使用连续的完整停止字符时,省略号自然不会出现。因此,所有这些使用的原因是使文本正确地显示给人类读者。

  

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

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

并非所有符合Unicode标准的系统都能正确显示所有字符。这取决于可用的字体,甚至是使用字体的渲染系统。但任何符合Unicode标准的系统都能够不加改变地传输字符(例如在复制和粘贴操作中)。

  

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

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

应该更新任何无法正确处理Unicode的系统。旧版角色编码将来没有任何地方。

答案 1 :(得分:3)

我认为有一个简单的解释:MS Word会在您键入时自动转换这些字符/序列,并且已从此文本编辑器中复制了Internet中的大量文本。

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

我还要添加一个:许多不同类型的破折号而不是连字符。还有低开双引号(如某些欧洲语言所示)。

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

答案 2 :(得分:2)

HTML实体有三重目的:

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

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

  3. 可以更轻松地输入不在键盘中或编辑器不支持的字符,例如:版权符号。

  4. <强>更新

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

答案 3 :(得分:1)

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

排版员会坚持&ldquo;&rdquo;,程序员不关心,只使用常规旧引号"

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

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

答案 4 :(得分:0)

当您复制包含特殊字符的面食文本时,它们将保持原样。如果字符与网页使用的字符集匹配,则完全正常。

HTML实体只是在任何字符集中生成特定字符的便利。键盘往往没有键来获取©之类的符号,因此HTML实体是一种捷径。

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

相关问题