没有真正的unicode URL减去某种编码这样的东西。如果试图将unicode字符写入URL,浏览器会对其进行编码。地址栏中出现的unicode字符纯粹是UI帮助。
URL中的Unicode,用于域后的位,例如。/page
我们需要根据另一个规范进行url编码,例如PHP函数url_encode
所以ヒキワリ.ナットウ
成为%E3%83%92%E3%82%AD%E3%83%AF%E3%83%AA.%E3%83%8A%E3%83%83%E3%83%88%E3%82%A6
.
如果您尝试在URL中插入空格并将其转换为%20
看见https://www.w3.org/International/O-URL-and-ident.html 有关如何将URL RFC不支持的UTF-8字符转换为带%
国际化资源标识符(IRI)是一个新的协议元素,是对URI的补充【RFC2396】。IRI是通用字符集(Unicode/ISO10646)中的字符序列。有一个从IRIs到URI的映射,这意味着可以在适当的情况下使用IRIs代替URI来标识资源。
。。。
URI的国际化很重要,因为URI可能包含来自使用ASCII以外字符的各种协议或格式的各种信息。RFC 2396中定义的URI语法目前只允许作为ASCII的子集,大约60个字符。它还定义了一种将任意字节编码为URI字符的方法:一个%后跟两个十六进制数字(%HH转义)。但是,由于历史原因,在使用%HH转义之前,它没有定义如何将任意字符编码为字节。
在几年前讨论的各种解决方案中,UTF-8作为URI的首选字符编码被认为是最好的。这与IRI到URI的转换一致,该转换使用UTF-8编码,然后使用%hh转义:
而且https://www.w3.org/International/articles/idn-and-iri/
域中的Unicode这有点不同,不使用基于百分比的编码。
浏览器做了很多繁重的工作来向您隐藏这种编码。E、 g。http://JP納豆.例.jp
, 您可以复制粘贴URL、访问URL等,但如果您尝试查看源代码,您将看到URL实际上是view-source:http://xn--jp-cd2fp15c.xn--fsq.jp/
阅读本文了解更多信息:
https://www.w3.org/International/articles/idn-and-iri/
由于历史的原因,TLDR URL只允许有非常有限的字符子集,当CERN和美国以外的人开始使用它时,这并不好。商定了标准和规范,以适合不适合ascii子集的字符。
因此WordPress正在将漂亮的URL转换为真实的URL。否则,您将在匹配和搜索数据库时遇到各种各样的问题。
到MySQL,ヒキワリ.ナットウ
与%E3%83%92%E3%82%AD%E3%83%AF%E3%83%AA.%E3%83%8A%E3%83%83%E3%83%88%E3%82%A6
, 所以WordPress使用后者,因为这是实际的URL。ヒキワリ.ナットウ
只是人性化的有益视觉
更具体地说,WP在输入时转换它,而不是在输出时。如果禁用该选项,则会发生两件事,第一件事是html不再验证,第二件事是浏览器在您尝试使用URL时将其转换为编码值。但是,有些软件可能不会进行这种转换,如果您将unicode字符直接放在HTTP请求中,这可能会破坏一切