【问题标题】:HTML5 + UTF-8: do i need to encode the GBP symbol (£)?HTML5 + UTF-8:我需要对 GBP 符号 (£) 进行编码吗?
【发布时间】:2011-05-12 02:21:40
【问题描述】:

我认为 utf-8 可以只处理一个简洁的 £ 而不必转换为实体?

使用 UTF-8 和 HTML5 处理 GBP 符号的正确方法是什么?

(ps.不要认为html5部分应该有任何区别)


更新:

这里是测试文档:

<!doctype html>  
<head>
  <meta charset="utf-8">
  <title>GBP Test</title>
</head>

<body>
£55
<br />
&pound;55
</body>

感谢大家的帮助。

对于其他面临这种挫败感的人来说,问题与您的文本编辑器有关。甚至是非 utf-8 的记事本格式。

解决方案:

将读写格式更改为 我的文本编辑器中的 UTF-8 (PHP Designer)

【问题讨论】:

  • 您的页面编码声明为(在 HTTP 标头中,或在 &lt;meta http-equiv="content-type" content="..."&gt; 中)?
  • 有什么问题?我认为 UTF-8 可以处理这个字符。
  • @matts!更新了示例页面
  • @Haroldo:这个例子怎么样?效果很好。
  • @Haroldo 为我工作:jsfiddle.net/VRzVk 你可能有编码问题。检查浏览器的“编码”或“字符集”菜单。复选标记在哪里?我敢打赌它不在 UTF-8 上

标签: php mysql html utf-8


【解决方案1】:

只需使用字符。它会正常工作。

当然,UTF-8 中的符号与 ISO-8859-1 中的代码点不同。 ISO-8859-1 编码的井号在 UTF-8 中不起作用,反之亦然。你必须转换它。

相关:When Should One Use HTML Entities

【讨论】:

  • 在上面的示例中似乎不起作用(只是添加到问题中)-是因为我的文本编辑器将其输入为非 utf-8 吗?还是其他原因?
  • @Haroldo 不确定meta charset 是否有效。试试@Matt Ball 的建议并检查浏览器是否真的理解它(在编码菜单中)
  • &lt;meta http-equiv="content-type" content="text/html;charset=utf-8" /&gt; 也不起作用
【解决方案2】:

简短的回答是,只要将文档字符集声明为 UTF-8(使用 Content-Type 标头、meta charset 元素头部,或带有 XHTML 的 xml encoding 属性)...

您需要在 UTF-8 HTML 文档中编码的唯一字符是(取决于上下文):

  • &amp;amp; => &
  • &amp;lt; =>
  • &amp;gt; => >
  • &amp;quot; => "

如果您使用的是 XHTML(这也是有效的 XML),您还需要使用任何一种编码单引号(同样,取决于上下文):

  • &amp;apos; => '
  • &amp;#39; => '
  • &amp;#x0027; => '

(注意最后两个是首选,因为&amp;apos; 没有在 HTML 中定义...)

还要注意 &、 需要在任何地方进行转义,而 " 和 ' 只需要在适当的属性内进行转义(因此,如果使用 " 引用属性,则需要全部转义该属性内的其他" 字符)...

有关更多信息,请参阅HTML 5 Draft...

【讨论】:

  • 您不需要对"' 进行编码,属性值除外。
猜你喜欢
  • 1970-01-01
  • 2011-07-02
  • 1970-01-01
  • 1970-01-01
  • 2019-02-20
  • 2012-01-04
  • 2015-07-09
  • 1970-01-01
相关资源
最近更新 更多