作者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/m.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