关于JAVA中URL传递中文参数,取值是乱码的解决办法
今天遇到一個問題就是在Action當中把一條中文信息綁定在URL的后面,ActionForward到別一個頁面時,用reqeust.getParameter取出是出現亂碼的問題。
現解決辦法如下:
1、對要進行URL傳遞的中文字符進行編碼:
String message =?Java.NET.URLEncoder.encode("中文字符","utf-8");
2、在取URL傳遞中文的頁面對字符進行解碼:
String msg = request.getParameter("message");
?? String str=new String(msg.getBytes("ISO-8859-1"),"UTF-8");
--------------------------------------------------------------------------------------
注 1、這里得出的str就是先前傳入的"中文字符"。
????? 2、為什么要對取出的字符集形式轉換成UTF-8形式,是因為ISO-8859-1是Java中網絡傳輸使用的標準字符集,request.getParameter("message");得到的還是ISO-8859-1字符集,所以要轉換一下。
二
哦,前幾天看到有網友在問URLDecoder和URLEncoder方面的使用問題,突然想起,原來我剛遇到這兩個類時,也覺得很神密,由此可以想想初學者的心情,于是便有了今天的這篇文章.
其實,這兩個類的使用并不復雜,URLDecoder和URLEncoder它的作用主要是用于普通字符串和application/x-www-form-rulencodedMIME字符串之間的轉換,一般的人會以為后一個字符串比較專業,以為有什么高深的知識,其實不然.
????下面,我們在在"百度"中搜索"網絡時空",會看到如下所示的圖示
?????從上圖中可以看出:當我們搜索的關健字包含中文時,這些關健字就會變成如圖所示的"亂碼",實際上這不是亂碼,這就是所謂的applicaion/x-www-form-urlencodedMIME字符串.
?????當URL地址里包含非西歐字符的字符串時,系統會將這些非西歐轉換成如圖所示的特殊字符串,那么編碼過程中可能涉及將普通字符串和這種特殊字符串的相關轉換,這就是需要使用URLDecoder和URLEncoder類
?????URLDecoder類包含一個decode(String s,Stringcharcter)靜態方法,它可以將看上去亂碼的特殊字符串轉換成普通字符串
?????URLEncoder類包含一個encode(String s,Stringcharcter)靜態方法,它可以將普通字符串轉換成application/x-www-form-urlencodedMIME字符串
?????如下程序代碼?importjava.Net.*;
public class URLDecoderTest
{
?public static void main(String[] args)
??throws Exception
?{
??//將application/x-www-form-urlencoded字符串
??//轉換成普通字符串
??//其中的字符串直接從上圖所示窗口復制過來
??String keyWord =URLDecoder.decode(
???"%CD%F8%C2%E7%CA%B1%BF%D5","UTF-8");
??System.out.println(keyWord);
??//將普通字符串轉換成
??//application/x-www-form-urlencoded字符串
??String urlStr =URLEncoder.encode(
???"網絡時空" ,"UTF-8");
??System.out.println(urlStr);
?}
}
????上面程序中就是普通中文字符串和application/x-www-form-urlencoded MIME字符串之間的轉換.
?????運行上面程序結果圖示如下
總結:?????當URL地址中僅包含普通非中文字符串和application/x-www-form-urlencodedMIME字符串無須轉換,而包含中文字符串的普通字符串則需要轉換,換句話說,也就是說URL地址中有"中文字符串"傳遞時,才會考慮用到上面提到的兩個類,這樣就可以將傳遞過來的中文接受后,再還原成原來的中文字符串.如不轉換,則通過URL傳遞過來的中文字符中會變成亂碼,無法還原了
總結
以上是生活随笔為你收集整理的关于JAVA中URL传递中文参数,取值是乱码的解决办法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中国银行定益宝属于什么产品 相关产品介绍
- 下一篇: 白色家电市场分析 将迎来转型