Google Chrome中的网址编码

时间:2014-01-31 10:40:06

标签: php google-chrome url-encoding

是否有人知道Google Chrome使用哪种编码方式进行编码?

当我们尝试从Google的搜索框(Omnibox)复制网址时就会发生编码。

我已粘贴以下网址:

www.bing.com/search?q=이윤희&go=&qs=n&form=QBLH&filt=all&pq=이윤희&sc=0-0&sp=-1&sk=

进入Google搜索,然后从搜索框中复制相同的网址,它就变成了:

http://www.bing.com/search?q=%EC%9D%B4%EC%9C%A4%ED%9D%AC&go=&qs=n&form=QBLH&filt=all&pq=%EC%9D%B4%EC%9C%A4%ED%9D%AC&sc=0-0&sp=-1&sk=

我想知道他们正在使用什么编码。

1 个答案:

答案 0 :(得分:3)

这是标准的URL编码百分比,在这种情况下是UTF-8编码的文本。 URL 不能包含非ASCII字符(实际上,其子集,URL的不同部分的不同子集)。您实际上不能在URL中使用“이윤희”。要嵌入任意字符,您可以对它们进行百分比编码。这只需要一个字节,并将其十六进制值编码为%xx。 “이윤희”的UTF-8字节表示为EC 9D B4 EC 9C A4 ED 9D AC,这正是您在URL中看到的内容。

网址始终是这样的,复制时Chrome不是这样做的。相反,如果网址显示为www.bing.com/search?q=이윤희&...,那么Chrome就会很好并显示为您解码的网址。

请参阅What every web developer must know about URL encoding

在PHP中,可以使用rawurlencode复制:

echo rawurlencode('이윤희'); // (assuming UTF-8 encoded source code)