[问题] URL encoding问题

楼主: tnsshnews (tnsshnews)   2015-01-26 09:30:51
Dear all,
小弟想去某个网站自动crawler资料, 观察某网站的网址, 是要用Big5编码URL,
但用java内建的URLEncoder编码出来的又不一样, 是编码有两套吗?
无意间找到这个网站
http://www.mytju.com/classCode/tools/urlencode_big5.asp
它的URL encoding刚好跟我要抓的网站一样, 但用java内建的encoder却产生不出一样的,
举例说明一下, 例如http://sss.xxxx.aaa.vvv?text=编码
编码的部分拿 "林" 这个中文字来举例, 在无意见中找到的转码网站结果如下,
字符 编码10进制 编码16进制 URL编码
林 43596 AA4C %AAL
java内建的URLEncoder产生出来的是16进位码 %AA%4C
但网站要吃的却是%AAL
有人知道这是哪种Big5编码吗
感激不尽
作者: realmeat (真肉)   2015-01-26 11:32:00
%4C 跟 L 其实是同一件事, 看来对 ASCII 不熟唷
楼主: tnsshnews (tnsshnews)   2015-01-26 12:51:00
但不知为何4C要转成ascii, AA就不用呢看起来是A-Z, a-z有转ascii, 其他都没转
作者: ssccg (23)   2015-01-26 13:04:00
因为url encode是规定ascii非保留字符范围的byte value要编成%xx,A-Z、a-z、0-9、-_.~就不用 ↑以外decode的时候应该是不管是%4C还是L都先转成byte value再照对应编码转回来(big5的话AA4C变成"林"、414C变"AL")不用%4C用L原因就短啊,一样的值少传三个byte就是省问题在你说的网站为什么不能处理%4C ↑两
楼主: tnsshnews (tnsshnews)   2015-01-26 13:27:00
不好意思, 是我太天兵了, 这个规则就是java Encoder做的结果, 是我搞错了, 谢谢大家帮忙
作者: tubbysong (song)   2015-01-26 19:40:00
Base64

Links booklink

Contact Us: admin [ a t ] ucptt.com