是否有任何标签告诉浏览器只需打印标签内的内容,而不关心标签内部的语法?我正在尝试打印一些unicode字符,但是浏览器仍然会出错,即使我将字符直接粘贴到预标记内,也不使用&符号。
我正在尝试在div标签内打印©,但是将该字符放在div标签内会导致“格式不正确”的错误(该页面甚至不会显示在Mozilla Firefox中,而且版权符号未在Microsoft Edge中打印。
该页面作为application / xhtml + xml提供。
以下是代码:
<footer>©</footer>
这是错误:
XML Parsing Error: not well-formed Location: http://programcode.net/ Line Number 19, Column 13:
<footer></footer>
------------ ^
如果我这样做:
<footer><pre>© </pre></footer>
然后发生同样的错误:
XML Parsing Error: not well-formed Location: http://programcode.net/ Line Number 19, Column 18:
<footer><pre> </pre></footer>
----------------- ^
我尝试声明utf-8和utf-32(在xhtml文件中的元标记和.htaccess中),但错误仍然存在。
答案 0 :(得分:0)
XHTML很棒,因为它使用非常严格的XML解析器。如果您有知道的错误,则表示您有错误并需要修复。我看到一个人花了三天的时间试图弄清楚为什么Safari无法工作,但所有其他浏览器都运行正常(他错过了一个关于元素属性的引用)。
您需要做的是编码HTML实体。有一些网站向您展示完整的Unicode范围及其字符。我建议使用https://unicode-table.com/en/,因为它不那么令人生畏。
现在,当你在那里时,你会想要search for the copyright符号。
接下来,您将点击明显的符号,然后您将结束copyright page。
您正在寻找 HTML代码(与其他专业人士交谈时的正确术语是“数字HTML实体”)。永远不要使用松散的“实体”(©
),您希望始终使用数字HTML实体(©
)。
因此,您的代码应如下所示: ©
XHTML,CSS和JavaScript处理HTML实体的方式略有不同。
对于 JavaScript实体,您需要用小写的“u”替换大写的“U”,删除“+”。以下示例可以从任何浏览器的Web开发人员控制台运行:
alert('Look at my \u00A9 date!');
请注意,必须具有版权符号的双零(删除它们会破坏代码)。
对于 CSS实体,它有点简单:
h1::after {content: '\00A9'; display: block; float: left;}
为什么这么复杂?
一个字节有8位(每秒1兆位,实际上每秒只有125,000字节(125千字节)。有些字符不能用代码中的单个字符表示。有多个级别的Unicode(通用字符集)但是大多数网站都转向UTF-8。有些语言(例如中文,据我所知)使用整个单词的符号(他们的“字母表”很多更长)。所有这些角色都必须以某种方式用代码表示(你没看到)。在任何地方(尤其是网络)本地支持UTF-8都有很大的进步。在使用XHTML时,应该对字符代码127以上的任何内容进行编码。它可能或者它本身可能不起作用,对于另一个问题来说这是一个更高级的主题。希望这会给你足够的洞察力来获得移动和开槽。