HTML字符编码

时间:2010-12-01 15:43:02

标签: html character-encoding

从数据库输出HTML内容时,浏览器会正确解释某些编码字符,而其他字符则不会。

例如,%20正确地成为空格,但%AE不会成为注册商标符号。

我错过了某种内容编码说明符吗?

(注意:我无法真实地将内容更改为,例如®,因为我无法控制输入编辑器生成的标记)

5 个答案:

答案 0 :(得分:2)

%AE对HTML安全ASCII无效, 您可以在此处查看表格:http://www.ascii.cl/htmlcodes.htm

看起来你正在处理Windows Word编码(windows-1252类似的东西)它真的不会转换为html安全,除非你在中间进行某种翻译。

答案 1 :(得分:2)

字节AE是注册商标的ISO-8859-1表示。如果您没有看到任何内容,那么显然URL解码器正在使用其他字符集对其进行URL解码。例如UTF-8,此字节不代表任何有效字符。

要解决此问题,您需要使用ISO-8859-1对其进行URL解码,或者将现有数据转换为使用UTF-8进行URL编码。

也就是说,您不应该将HTML(XML) encoding®混为%AE,而应将{{1}}与{{1}}混淆。

答案 2 :(得分:2)

'%20'编码是URL编码。它仅对URL有用,而不是用于显示HTML。

如果要在HTML页面中显示注册字符,您有两个选择:使用HTML实体,或将您的页面传输为UTF-8。

如果你决定使用实体代码,那么集中转换它们相当简单,因为你可以使用数字实体;您不必使用命名实体 - 即使用®而不是&#reg;

如果你需要知道每个角色的实体代码,我发现这个备忘单非常有帮助:http://www.evotech.net/blog/2007/04/named-html-entities-in-numeric-order/

答案 3 :(得分:0)

您使用的服务器端语言是什么?检查URL解码功能。

答案 4 :(得分:0)

如果您使用的是php,则可以使用urldecode()但是您应该注意+个字符。