在百度查询时 它地址栏中会将你所输入的中文转换为一些字符 它转换的根据是什么?
例如:
我在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 又是什么意思呀?
第1个回答 2006-08-21
由于IE地址栏对汉字的支持不够好。所以百度搜索中把汉字转换成二进制字符。
另:cl=3中的“cl”是 class 的意思,在这里表示分类。
另:cl=3中的“cl”是 class 的意思,在这里表示分类。
第2个回答 2006-08-21
把汉字转换成其 ASCII 码,然后求16进制就是那样,很多地方都用的这个方法来实现汉字和英文的转换!
第3个回答 2006-08-21
如果你懂得ASP的话,很容易解释那串编码的来源:
在ASP中Server对象有个函数是URLEncode,它的功能是将汉字编码转换成URL专用格式。
str=server.URLEncode("瘪三")
之后str的值就是%B1%F1%C8%FD了。
这就是%B1%F1%C8%FD的来源。
URLEncode的算法和二楼解释一样:
把汉字转化为ASCII,然后转化为16进制,将其每阁两字符加%
至于目的,和1楼的说法相似。
汉字通过URL直接传常出现意想不到的错误,所以用这个东西。本回答被提问者采纳
在ASP中Server对象有个函数是URLEncode,它的功能是将汉字编码转换成URL专用格式。
str=server.URLEncode("瘪三")
之后str的值就是%B1%F1%C8%FD了。
这就是%B1%F1%C8%FD的来源。
URLEncode的算法和二楼解释一样:
把汉字转化为ASCII,然后转化为16进制,将其每阁两字符加%
至于目的,和1楼的说法相似。
汉字通过URL直接传常出现意想不到的错误,所以用这个东西。本回答被提问者采纳