是否需要URL编码锚元素的“href”属性?

时间:2011-11-01 08:13:59

标签: html url uri urlencode

我检查了我的网页的HTML代码并使用Firefox's HTML Validator add-on对其进行了验证,我看到它抱怨链接的href属性,其中包含Unicode字符,这些字符不是URL编码的。

当前网址为:

<a href='/اخبار'>Persian News</a>

但是,验证者希望它是:

<a href='/%D8%A7%D8%AE%D8%A8%D8%A7%D8%B1'>Persian News</>

我几乎在每个浏览器中测试过此链接(甚至回到IE6)。它工作得很好。那么,这里的问题是什么?我为什么要编码呢?验证器是否已过期?如果href标记的<a>属性中没有URL编码Unicode字符,我可能会遇到什么问题?

4 个答案:

答案 0 :(得分:4)

只能使用ASCII字符集通过Internet发送URL。

通常,浏览器会为您进行编码。

答案 1 :(得分:3)

不支持此语言(编码)的浏览器将无法打开该URL。您应对其进行编码,以确保每个人都能够使用您网站的所有功能。

答案 2 :(得分:1)

是的,我已经测试过了     <meta http-equiv="Content-type" content="text/html; charset=windows-1251"/> 这意味着俄罗斯和链接只是转     <a href="/?????">Persian News</a> 所以你需要一个合适的字符集和编码,使其工作正常。

答案 3 :(得分:1)

这取决于您希望页面符合的标准:

  • 对于(X)HTML5,包含非ASCII字符(即IRI)的URI有效,只要您的文档以UTF-8或UTF-16编码并且相应地发送MIME标头。 / p>

  • 在HTML4 / XHTML1文档中,所有非ASCII字符都必须进行转义。

另请参阅Are IRIs valid as HTML attribute values?的答案。