首頁  >  文章  >  後端開發  >  关于URL中的%十六进制数 服务器是如何解析的

关于URL中的%十六进制数 服务器是如何解析的

WBOY
WBOY原創
2016-06-23 14:08:581592瀏覽

刚才想起了经藏见到的URL中的%十六进制数,看了一些问什么要采用这种编码的解答,这点明白了。。网上说是为了兼容某些只能支持ASCII码的设备。感觉这样的解释有点牵强,大家觉得呢。。。

我的疑惑是:对于这样的十六进制数,服务器是如何解析这样的URL的。服务器如何判断这样的十六进制数是表示什么编码的?
%B7%FE%CE%F1%C6%F7%C8%E7。。就像这样一个串,服务器如何解析它是UTF8编码还是GBK或者GB2321的。。。


回复讨论(解决方案)

urldecode
UTF-8和GBK的编码还是有区别的,从特征码来识别。

可以具体解释下有什么区别吗?

url编码,将由web服务器隐式的执行urldecode进行解码
至于传递的是什么,需由应用程序解释

这个和服务器没有关系。是浏览器判读编码,进行统一相同的urlencode处理的吧。猜的,水娃一个

恩恩。。明白是应用程序的问题了。。但还是不知道如何判断编码格式的。。另外再提一个问题,像这种编码,在客户端应该是用JS实现的,到后台的时候用后台代码解析,这就意味着两端的编码要统一,这个不难做到,还是那个问题,如何判断是什么编码的?

不同的浏览器,在URL地址中传中文,会有不同的结果。有些是GBK,有些是UTF-8,为了防止由于浏览器的自动化所带来的不便,中文最要先用urlencode处理一下,接收端用urldecode来处理。
PHP有检测字符集的方法,但是不是很准,不能过于期望。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn