UTF8,ISO-8859-x或7位ASCII和实体

时间:2009-03-21 13:51:08

标签: xml xhtml

您对XHTML和XML中的重音和特殊字符的编码有何看法?

  • 您是否将每个非US-ASCII字符转换为命名实体?
  • 您使用ISO-8859-x或Win-125x并对实体进行编码吗?
  • 或者你是否直接用UTF-8编写所有内容,而不用担心实体?

请详细说明哪些为什么

9 个答案:

答案 0 :(得分:7)

我无法确切地告诉你为什么会发生这种情况,但在我5年的使用UTF-8为每个网页(我主要使用西里尔和波罗的海符号)的经历中,我还没有看到任何字符显示不正确。

答案 1 :(得分:6)

UTF-8。

它的设计完全是为了解决用UTF-16发生的kdgregory提到的问题并且它做得非常好。今天几乎每个编辑器(包括记事本)都支持UTF-8,它也是XML的默认编码。

答案 2 :(得分:3)

不要打扰命名实体。当您需要手动编辑HTML文件并希望能够读取字符并且没​​有UTF-8编辑器时,它们很适合。但除此之外,UTF-8还有很长的路要走。

答案 3 :(得分:2)

我总是直接写在utf8。我在此期间遇到的唯一问题是服务器谁在标头上强制进行ISO编码。

答案 4 :(得分:1)

始终为您的网站使用UTF-8

  1. 现代框架和数据库服务器支持UTF-8没有任何异议/问题。

  2. 当有人使用与预期不同的语言输入文字时,你会避免出现问题,你会得到??????而不是一些unicode符号,甚至更糟糕的是甚至没有呈现页面模板。

  3. 即使您的网站在没有多语言界面的情况下也会使用一种语言(未来也会如此),有人可能会在您的网站上发布材料并以他们自己的语言从他的朋友那里获得评论。

  4. 此致 帕维尔

答案 5 :(得分:0)

从美国人的观点来看:几乎所有文本都是US-ASCII,带有一些符号和重音字符,我强烈建议使用数字或命名实体。

原因很简单:担心的事情少了一点。您无需确保将您的网络服务器设置为宣传与您的内容相同的编码。因为迟早你会让某人在Windows上编辑页面,使用Cp1252编码,而其他人在使用ISO-8859的Linux上工作,虽然这两者很接近,但它们并不相同。如果网络服务器配置为UTF-8,它们都会被破坏。

那就是说,我给了Sergej +1,因为如果你正在处理主要不是ASCII的文本,你不需要大量的实体。

答案 6 :(得分:0)

我个人总是使用UTF-8。它得到了很好的支持,每种语言,操作系统和浏览器都以某种方式支持它。实体很好地显示,但它们是一个痛苦的脖子编辑。命名实体可以引用很多字符,但只会覆盖西方字符集。对于亚洲语言,你将不得不回到十六进制实体,这不是很漂亮。十六进制实体也必须使用Unicode表进行解码或编码,因此您可能希望首先使用unicode flavor对文本进行编码。

如果您的主要观众是英语,您可能会认为您可以使用ISO-8859-1或cp1252,但那将是一个错误。迟早有人会写重音或其他外国字符,当发生这种情况时,修改你的编码已经太迟了:有些文字已经搞砸了。

以下是一堆进一步阅读,在玩charsets时让我感到很头疼:

Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)由joelonsoftware.com详细介绍字符集及其用法和区别。这里的信息非常笼统,但有助于确定选择哪种编码。

Character sets from Browser to Database是一篇非常实用且务实的文章,涵盖了很多关于你必须验证你的编码没有转换成其他东西的地方。

What Is UTF-8 And Why Is It Important?是SUN的另一篇文章,它深入探讨了UTF-8的细节,在阅读完前两篇文章之后,应该允许你回答有关UTF-8细节的任何问题。

答案 7 :(得分:0)

如果我主要在ASCII空间(英语,大多数浪漫语言)上工作,我将所有非ASCII转换为命名或编号实体。这使得我或其他没有适当字体的人可以使用它。这看起来似乎不太可能,但有一天你最终会使用一些不支持UTF-8的神秘终端,即使主机系统没有安装正确的字体。

如果我正在编写大部分不是ASCII的文本,我将使用UTF-8。如果文本是所有与Unicode替换框一样无法读取的实体。

答案 8 :(得分:0)

Unicode的前128个字符与ASCII兼容。用这128个字符编写的文本都是有效的ASCII和UTF-8文档。 Unicode是一种标准,每个人都应该使用它。讲英语的人不会有区别,但非英语会有所不同。就个人而言,如果软件及其创建者无法正确存储和显示我的姓氏,我会对此感到非常失望。

我还必须注意到,字符编码只是涉及内化的一系列问题中的第一个。它可以在较小的软件中特别注意,这些软件根本不是为了处理各种非英语语法问题而设计的。