作者tnsshnews (tnsshnews)
看板java
标题[问题] URL encoding问题
时间Mon Jan 26 09:30:51 2015
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编码吗
感激不尽
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.248.200.96
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/java/M.1422235854.A.CBD.html
1F:→ realmeat: %4C 跟 L 其实是同一件事, 看来对 ASCII 不熟唷 01/26 11:32
2F:→ tnsshnews: 但不知为何4C要转成ascii, AA就不用呢 01/26 12:51
3F:→ tnsshnews: 看起来是A-Z, a-z有转ascii, 其他都没转 01/26 12:54
4F:→ ssccg: 因为url encode是规定ascii非保留字元范围的byte value要编 01/26 13:04
5F:→ ssccg: 成%xx,A-Z、a-z、0-9、-_.~就不用 ↑以外 01/26 13:05
6F:→ ssccg: decode的时候应该是不管是%4C还是L都先转成byte value 01/26 13:07
7F:→ ssccg: 再照对应编码转回来(big5的话AA4C变成"林"、414C变"AL") 01/26 13:09
8F:→ ssccg: 不用%4C用L原因就短啊,一样的值少传三个byte就是省 01/26 13:10
9F:→ ssccg: 问题在你说的网站为什麽不能处理%4C ↑两 01/26 13:11
10F:→ tnsshnews: 不好意思, 是我太天兵了, 这个规则就是 01/26 13:27
11F:→ tnsshnews: java Encoder做的结果, 是我搞错了, 谢谢大家帮忙 01/26 13:28
12F:推 tubbysong: Base64 01/26 19:40