对于一个特殊的值,我试过HTML unspecified,但似乎NUL字符不是用HTML解释的。我得到�。我想知道为什么,以及除了NUL之外还有什么其他不寻常的UTF-8字符可能需要注意。为什么HTML不能包含NUL字符? (转换为0xFFFD /“%EF%BF%BD”)
正如你可以在上面看到,下拉被设定与NUL值,但它们都转换为JavaScript时检查的结果。
var select = document.querySelector('select')
inspect()
select.options[0].value = '\u0000'
select.options[0].label = '\u0000'
inspect()
select.innerHTML = select.innerHTML
inspect()
function inspect() {
alert(encodeURIComponent(select.options[0].value)
+ ','
+ encodeURIComponent(select.options[0].label)
+ ','
+ select.innerHTML)
}
JavaScript可以专门设置value和label到\u0000和它的作品,但由于某些原因,这是不能够在HTML中呈现。
您能解释为什么和/或指向相关文档吗?还有其他的UTF-8字符会以相似的方式替换吗?
+2
你认为它被渲染为什么? –
+0
在W3C HTML中[8.2.2.5预处理输入流](http://www.w3.org/TR/html5/syntax.html#preprocessing-the-input-stream)的第二个注释中提到了'NULL'/XHTML建议。它读取为“取决于”给我:P –
+0
@rollingBalls,我期待所有三个警报中的'%00,%00, NUL' - 其中NUL是浏览器特定的表示的NUL角色。 –