2008年11月25日

用Java替中文網址轉碼:URLEncoder


 
在程式或者網頁的應用中我們常常需要把中文轉換為其他編碼
例如在上一篇 Google Chart API:繪製中文圓餅圖(Pie Chart)
就需要把中文網址轉換為 UTF-8 的編碼
當然下面介紹這些也不僅僅限於轉換網址而已

圖片來源:http://www.stringfunction.com/blog/url-encoding-decoding/

在我目前的應用中只用過了JAVA
使用的函數是 URLEncoder.encode(String 字串, String 編碼)
(編碼為:UTF-8, UTF-16等等)
以下是節錄自用javascript轉UTF-8編碼的編碼解碼介紹

#Java#
會處理#字元為%23,空白字元轉換為+,中文字拆開每BYTE處理為ASCII
第二個String 為Locale
java.net.URLEncoder.encode(String args,String args)
java.net.URLDecoder.decode(String args,String args)

#JavaScript#
會處理#字元為%23,空白字元轉換為+,中文字處理為UniCode
escape(String args)
unescape(String args)
不會處理#字元,空白字元轉換為%20,中文字拆開每BYTE處理為ASCII
encodeURI(String args)
decodeURI(String args)
會處理#字元為%23,空白字元轉換為%20,中文字拆開每BYTE處理為ASCII
encodeURIComponent(String args)
decodeURIComponent(String args)

#PHP#
會處理#字元為%23,空白字元轉換為+,中文字拆開每BYTE處理為ASCII
urlencode
urldecode
會處理#字元為%23,空白字元轉換為%20,中文字拆開每BYTE處理為ASCII (RFC 1738 )
rawurlencode
rawurldecode

這篇只介紹了使用java來做轉碼
使用javascript編碼轉換的介紹可以查看
用Javascript替中文轉碼:escape, encodeURI, encodeURIComponent 的比較
或者直接利用Online UrlEncoder:線上轉換中文網址為UTF-8編碼

關鍵字:java.net.URLEncoder, UTF-8, url, encode, decode, 中文, 中文網址, 轉碼, 編碼
參考資料:
1. 用javascript轉UTF-8編碼
2. (JSP)傳送URL的時後需要的URLEncoder.encode(c,"utf8");


更多精選推薦文章