加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

IRI是否有效作为HTML属性值?

发布时间:2020-12-14 16:34:36 所属栏目:资源 来源:网络整理
导读:使用包含非ASCII字符的IRI作为属性值(例如对于href属性)而不是URI,这是有效的 HTML吗? HTML风格( HTML和XHTML,4和5)之间是否有任何差异?至少 RFC 3986似乎暗示它不是. 我意识到使用百分比编码可能更安全(关于旧的和不知道IRI的软件),但我正在寻找关于标准
使用包含非ASCII字符的IRI作为属性值(例如对于href属性)而不是URI,这是有效的 HTML吗? HTML风格( HTML和XHTML,4和5)之间是否有任何差异?至少 RFC 3986似乎暗示它不是.

我意识到使用百分比编码可能更安全(关于旧的和不知道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相同.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读