关于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传递过来的中文字符中会变成乱码,无法还原了


本文转自左正博客园博客,原文链接:http://www.cnblogs.com/soundcode/p/6290472.html,如需转载请自行联系原作者

相关文章
|
3月前
|
Java
Java给指定URL字符串添加值和获取URL字符串中的参数值
Java给指定URL字符串添加值和获取URL字符串中的参数值
44 0
|
4月前
|
Java
Java URL的理解
Java URL的理解
33 0
|
5月前
|
XML JSON 缓存
Java实现商品淘口令真实Url获取淘宝商品ID数据方法
Java实现商品淘口令真实Url获取淘宝商品ID数据方法
104 0
|
5月前
|
XML JSON 缓存
Java实现根据商品短连接(真实URL)获取1688商品详情用数据API方法
Java实现根据商品短连接(真实URL)获取1688商品详情用数据API方法
57 0
|
6月前
|
编解码 Java 对象存储
【java】对URL中的中文和符号进行UrlEncode转码
【java】对URL中的中文和符号进行UrlEncode转码
252 0
|
6月前
|
网络协议 Java
(服务器&客户端)网络通信是怎么实现的?7000字爆肝----原来java网络编程技术功不可没(多线程,URL,InetAddressm,TCP,UDP)集结
(服务器&客户端)网络通信是怎么实现的?7000字爆肝----原来java网络编程技术功不可没(多线程,URL,InetAddressm,TCP,UDP)集结
114 1
|
7月前
|
网络协议 Oracle 安全
java TCP/UDP、Socket、URL网络编程详解
java TCP/UDP、Socket、URL网络编程详解
370 0
|
8月前
|
Java
Java:使用hutool工具类UrlBuilder、urlQuery构建url查询参数
Java:使用hutool工具类UrlBuilder、urlQuery构建url查询参数
121 0
|
10月前
|
Java
Java访问url
Java访问url
49 0
|
10月前
|
Java
Java判断url(链接)是否有效
Java判断url(链接)是否有效
434 0
Java判断url(链接)是否有效
相关产品
云迁移中心
推荐文章
更多