URL中的Unicode字符

问题描述 投票:135回答:7

2010年,您是否将在大型Web门户中提供包含UTF-8字符的URL?

根据URL上的RFC,

Unicode字符被禁止(请参阅here)。必须对它们进行百分比编码以符合标准。

但是,我的主要目的是提供未编码的字符,其唯一目的是拥有美观的URL,因此百分比编码已经解决了。

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

  • URL被复制并粘贴到文本文件,电子邮件,甚至具有不同编码的网站中,>
  • HTTP客户端库
  • 异国浏览器,RSS阅读器
  • 我的印象是正确的,在这里一定会遇到麻烦,因此,如果您为非技术用户提供服务,这还不是一个实际的解决方案,并且即使引用和传递所有链接也都能够正常工作,这一点很重要吗?

是否有某种神奇的方法可以在HTML中提供美观的URL

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

可以复制并粘贴完整的特殊字符,但是在较旧的客户端中重复使用时可以正常工作吗?

2010年,您是否会在大型Web门户中提供包含UTF-8字符的URL?根据URL上的RFC禁止使用Unicode字符(请参见此处)。必须将它们百分比编码为...

html url unicode utf-8
7个回答
125
投票

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


86
投票

Tgr怎么说。背景:


16
投票

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


6
投票

不确定这是否是一个好主意,但正如其他注释中所提到的以及我的解释,许多Unicode字符在HTML5 URL中有效


5
投票
[因为所有这些评论都是正确的,所以您应该注意,直到ICANN批准将阿拉伯语(波斯语)和汉字注册为域名,所有浏览器制造公司(Microsoft,Mozilla,Apple等。)必须在没有任何编码的URL中支持Unicode,并且这些应可以由Google搜索,等等。

因此此问题将尽快解决。


1
投票

使用百分比编码形式

。例如,某些运行Windows XP的计算机(主要是较旧的计算机)不支持Unicode,而是支持ISO编码。这就是发明百分比编码URL的原因。另外,如果您将打印在纸上的URL提供给用户,其中包含不易键入的字符,则该用户可能很难输入(或忽略它)。百分比编码形式甚至可以用在曾经存在的许多最古老的机器中(尽管它们当然不支持互联网)。不过有一个缺点,因为百分号编码的字符比原始字符长,因此可能导致URL真的很长。但是,请尝试忽略它,或使用URL缩短器(在这种情况下,我建议您使用goo.gl,这样可以形成13个字符的长URL)。另外,如果您不想注册Google帐户,请尝试bit.ly(bit.ly会使URL稍长,长度为14个字符)。

0
投票
对我来说,这是正确的方法,这才有效:

$linker = rawurldecode("$link"); <a href="<?php echo $link;?>" target="_blank"><?php echo $linker ;?></a>

此方法有效,现在链接已正确显示:
© www.soinside.com 2019 - 2024. All rights reserved.