[問題] 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