看板 java 關於我們 聯絡資訊
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://www.ptt.cc/bbs/java/M.1422235854.A.CBD.html
realmeat: %4C 跟 L 其實是同一件事, 看來對 ASCII 不熟唷 01/26 11:32
tnsshnews: 但不知為何4C要轉成ascii, AA就不用呢 01/26 12:51
tnsshnews: 看起來是A-Z, a-z有轉ascii, 其他都沒轉 01/26 12:54
ssccg: 因為url encode是規定ascii非保留字元範圍的byte value要編 01/26 13:04
ssccg: 成%xx,A-Z、a-z、0-9、-_.~就不用 ↑以外 01/26 13:05
ssccg: decode的時候應該是不管是%4C還是L都先轉成byte value 01/26 13:07
ssccg: 再照對應編碼轉回來(big5的話AA4C變成"林"、414C變"AL") 01/26 13:09
ssccg: 不用%4C用L原因就短啊,一樣的值少傳三個byte就是省 01/26 13:10
ssccg: 問題在你說的網站為什麼不能處理%4C ↑兩 01/26 13:11
tnsshnews: 不好意思, 是我太天兵了, 這個規則就是 01/26 13:27
tnsshnews: java Encoder做的結果, 是我搞錯了, 謝謝大家幫忙 01/26 13:28
tubbysong: Base64 01/26 19:40