朱毛红军会师:(请进!!) 在百度查询时 它地址栏中会将你所输入的中文转换为一些字符 它转换的根据是什么?

来源:百度文库 编辑:神马品牌网 时间:2024/05/04 16:43:02
在百度查询时 它地址栏中会将你所输入的中文转换为一些字符 它转换的根据是什么?

例如:
我在www.baidu.com上打"瘪三" 然后查询
就看到地址栏上显示:
http://www.baidu.com/s?wd=%B1%F1%C8%FD&cl=3

其中字符 %B1%F1%C8%FD
就代表了"瘪三"这两个字

你也可只打其中一字进去查询
可以发现%B1%F1就是瘪
而%C8%FD就是三

请问他们是以什么作为根据来将中文汉字转换成这样的字符的呀?
谢谢!!!!!!

顺便问一下 cl=3 又是什么意思呀?

如果你懂得ASP的话,很容易解释那串编码的来源:
在ASP中Server对象有个函数是URLEncode,它的功能是将汉字编码转换成URL专用格式。
str=server.URLEncode("瘪三")
之后str的值就是%B1%F1%C8%FD了。
这就是%B1%F1%C8%FD的来源。
URLEncode的算法和二楼解释一样:
把汉字转化为ASCII,然后转化为16进制,将其每阁两字符加%

至于目的,和1楼的说法相似。
汉字通过URL直接传常出现意想不到的错误,所以用这个东西。

由于IE地址栏对汉字的支持不够好。所以百度搜索中把汉字转换成二进制字符。
另:cl=3中的“cl”是 class 的意思,在这里表示分类。

把汉字转换成其 ASCII 码,然后求16进制就是那样,很多地方都用的这个方法来实现汉字和英文的转换!