IDN属性中的IDN是有效还是必须进行Punycode编码?

时间:2014-05-19 12:41:29

标签: html idn punycode

在UTF-8编码的HTML文档中,使用IDN作为srchref属性的值是否有效?

<a href="http://موقع.وزارة-الاتصالات.مصر/">ICT</a>

是否存在强制使用Punycode编码版本的异议?

<a href="http://xn--4gbrim.xn----ymcbaaajlc6dj7bxne2c.xn--wgbh1c/">ICT</a>

我不确定现代用户代理是否将href视为“IDN-unaware domain name slot”。

1 个答案:

答案 0 :(得分:1)

查看a-tag的HTML规范说hrefhyperlink

当我在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年更新。