对于特殊值,我尝试过HTML <option value="�">unspecified</option>
,但似乎NUL字符不是用HTML解释的。我得到了�。我想知道为什么,以及NUL
以外我可能需要注意的其他不寻常的UTF-8字符。
这是我正在谈论的a fiddle to demonstrate。
<select><option value="�">�</option></select>
如上所示,下拉列表是使用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字符将以类似方式替换?
答案 0 :(得分:2)
字符引用的映射有character reference override table in the HTML5 spec。第一个是�
接下来是一些散文,指出0xD800到0xDFFF或大于0x10FFFF范围内的数字也会映射到Unicode替换字符。
答案 1 :(得分:0)
NUL无效。 HTML是基于文本的文档。只能输入字符串。
https://developers.whatwg.org/elements.html#attributes
除非另有说明,否则HTML元素的属性可能具有 任何字符串值,包括空字符串。除非明确说明 声明,对于可以指定的文本没有限制 属性。