我意识到使用百分比编码可能更安全(关于旧的和不知道IRI的软件),但我正在寻找关于标准的明确答案.
到目前为止,我已经使用W3C validator进行了一些测试,并且URI中未转义的unicode字符不会触发HTML 4/5和xhtml 4/5文档类型的任何警告或错误(但当然缺少错误消息不会意味着没有错误).
至少Chrome还支持原始的UTF-8 IRI,但是在触发http请求之前,它们会逃脱它们.此外,我的Web服务器(lighttpd)似乎在http请求中以百分比编码和未编码形式支持UTF-8字符.
解决方法 HTML 4.01非常简单.不同的属性对于它们可以包含的内容有不同的规则,但是如果我们在< a>上处理href属性.元素,然后 HTML 4 spec,section B.2.1 Non-ASCII characters in URI attribute values说:… the following href value is illegal:
<A href="http://foo.org/Håkon">...</A>
HTML5是不同的.它说IRIs are valid providing they comply with some additional conditions.
A URL is a valID URL if at least one of the following conditions
holds:The URL is a valID URI reference [RFC3986].
The URL is a valID IRI reference and it has no query component. [RFC3987]
The URL is a valID IRI reference and its query component contains no unescaped non-ASCII characters. [RFC3987]
The URL is a valID IRI reference and the character enCoding of the URL’s document is UTF-8 or a UTF-16 enCoding. [RFC3987]
xhtml 1.x遵循与HTML 4.01相同的规则.
XHTML5与HTML5相同.
总结以上是内存溢出为你收集整理的IRI是否有效作为HTML属性值?全部内容,希望文章能够帮你解决IRI是否有效作为HTML属性值?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)