URL中的Unicode字符

2010年,您会在大型门户网站中提供包含UTF-8字符的网址吗?

根据URL上的RFC,禁止Unicode字符(请参阅此处)。 他们必须将百分比编码为符合标准。

不过,我的主要观点是为未编码字符提供非常漂亮的URL,因此编码百分比已不存在。

无论RFC说什么,所有主流浏览器似乎都会解析这些URL。 然而,我的一般印象是,离开网络浏览器的领域时,它变得非常不稳定:

  • 将URL复制粘贴到文本文件,电子邮件,甚至是使用不同编码的网站
  • HTTP客户端库
  • 异国情调的浏览器,RSS阅读器
  • 我的印象是否正确,因为在这里可能会遇到麻烦,因此,如果您服务的是非技术性的受众群体,那么它不是一个实际的解决方案,即使引用并传递了所有链接也很重要,这一点非常重要。

    有没有什么神奇的方式在HTML中提供漂亮的网址

    http://www.example.com/düsseldorf?neighbourhood=Lörick
    

    可以复制+粘贴完整的特殊字符,但在旧客户端重复使用时可以正确工作?


    使用百分比编码。 现代浏览器将负责显示和粘贴问题并使其易于阅读。 例如, http://ko.wikipedia.org/wiki/위키백과:대문

    编辑:当你在Firefox中复制这样的URL时,剪贴板将保存百分比编码的表单(这通常是件好事),但是如果仅复制其中的一部分,它将保持未编码状态。


    Tgr说什么。 背景:

    http://www.example.com/düsseldorf?neighbourhood=Lörick
    

    这不是一个URI。 但它是一个IRI。

    您无法在HTML4文档中包含IRI; 像href这样的属性类型被定义为URI而不是IRI。 无论如何,一些浏览器会处理IRI,但这不是一个好主意。

    要将IRI编码为URI,请采用路径和查询部分,使用UTF-8编码,然后对非ASCII字节进行百分比编码:

    http://www.example.com/d%C3%BCsseldorf?neighbourhood=L%C3%B6rick
    

    如果在IRI的主机名部分有非ASCII字符,例如。 http://例え.テスト/ ,它们使用Punycode进行编码。

    现在你有一个URI。 这是一个丑陋的URI。 但是大多数浏览器会为你隐藏:将其复制并粘贴到地址栏中,或者在链接中跟着它,你会看到它显示的是原始的Unicode字符。 维基百科已经使用了很多年,例如:

    http://en.wikipedia.org/wiki/ɸ
    

    一个浏览器的行为是不可预知的,并不总是显示漂亮的IRI版本是......

    ...好吧,你知道的。


    根据您的URL方案,您可以使UTF-8编码部分“不重要”。 例如,如果您查看Stack Overflow URL,它们的格式如下所示:

    http://stackoverflow.com/questions/2742852/unicode-characters-in-urls

    然而,服务器实际上并不关心你是否在标识符错误后得到部分,所以这也适用:

    http://stackoverflow.com/questions/2742852/これは、これを日本語のテキストです

    所以,如果你有这样的布局,那么你可以在标识符之后的部分中使用UTF-8,如果它出现乱码则无关紧要。 当然这可能只适用于某些特殊的情况。

    链接地址: http://www.djcxy.com/p/70213.html

    上一篇: Unicode characters in URLs

    下一篇: Brackets in a Request URL are legal but not in a URI (Java)?