在UTF-8编码的HTML文档中,使用IDN作为src
和href
属性的值是否有效?
<a href="http://موقع.وزارة-الاتصالات.مصر/">ICT</a>
是否存在强制使用Punycode编码版本的异议?
<a href="http://xn--4gbrim.xn----ymcbaaajlc6dj7bxne2c.xn--wgbh1c/">ICT</a>
我不确定现代用户代理是否将href
视为“IDN-unaware domain name slot”。
答案 0 :(得分:1)
查看a-tag的HTML规范说href
是hyperlink。
当我在2014年回答这个问题时,它说href是一个URI,而URI是在RFC3987 Internationalized Resource Identifiers中定义的。如果您按照超链接中的链接进行操作,则会在目标中找到提及RFC 3986和RFC 3987的URL: Living standard链接。
来自RFC 3987:
<强>抽象强>
本文档定义了一个新的协议元素,即国际化 资源标识符(IRI),作为统一资源的补充 标识符(URI)。 IRI是来自的一系列字符 通用字符集(Unicode / ISO 10646)。 IRI到的映射 定义了URI,这意味着可以使用IRI代替URI, 在适当情况下,确定资源。
所以简单的答案是:是的,你可以在href中使用idn,至少对于HTML 5文档。但是,如果您的文本是双向的,则应该查看RFC 3987第4节。
在JohnT要求我更新损坏的链接后,此答案于2018年更新。