今天遇到一个问题就是在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传递中文参数,取值是乱码的解决办法相关推荐

  1. Java中url传递中文参数取值乱码的解决方法

    Java中url传递中文参数取值乱码的解决方法 参考文章: (1)Java中url传递中文参数取值乱码的解决方法 (2)https://www.cnblogs.com/liwenjuan/p/3211 ...

  2. java 中文参数_关于JAVA中URL传递中文参数的问题

    今天在调用一个接口时,需要传递一个中文参数,结果获取不到数据,原因就在于中文传参的编码问题. 问题来源:URL url= new URL("http://XXX?OrganName=司法厅& ...

  3. js中url传递中文参数乱码

    处理方法一. js 程序代码: url=encodeURI(url);注意是整个URL 服务器端的代码: String linename = new String(request.getParamet ...

  4. java url传参中文乱码问题_java中url传中文参数出现乱码

    缘由:java Http请求传输时将url以ISO-8859-1编码,服务器收到字节流后默认会以ISO-8859-1编码来解码成字符流(形成中文乱码).服务器 方法一:编码 咱们须要把request. ...

  5. HTML的Get方法URL传递中文参数,解决乱码问题

    HTML的Get方法URL传递中文参数,解决乱码问题 参考文章: (1)HTML的Get方法URL传递中文参数,解决乱码问题 (2)https://www.cnblogs.com/chenyucong ...

  6. c# 后台传到前台乱码_ASP.NET关于前台脚本传递中文参数,后台获取乱码问题(乱码为方框,黑色方框等。。)...

    随笔,很菜的笔记 关于ASP.NET关于前台脚本传递中文参数,后台获取乱码问题(乱码为方框,黑色方框等..)这种乱码问题,其实有很多解决方案 一般的只要在脚本的参数钱加上escape或者encodeU ...

  7. .Net中url传递中文的解决方案

    3种方法: 1.设置web.config文件. <system.web> ...... <globalization requestEncoding="gb2312&quo ...

  8. js传中文参数 java取_js中文转码传输java后台 适用于用url传递中文参数

    第一种方法: 解决方法如下: 1.在JS里对中文参数进行两次转码 var login_name = document.getElementById("loginname").val ...

  9. c#asp.net url 传递中文参数要使用 System.Web.HttpUtility.UrlEncode 而不能使用Server.UrlEncode...

    最近网站里的参数包括中文的例如: http://www.taiba/Tag%b0%ae%c7%e9.html 已开始使用 Server.UrlEncode来做的,但发现,有一些中文在url重写的是说找 ...

最新文章

  1. 边端云处理器系列技术参数
  2. R语言ggplot2可视化条形图(bar plot)、并为条形图添加误差条(error bar)、自定义设置误差条(error bar)的颜色/色彩( Barplots with Error bar)
  3. SAP IDoc 报错- Function module not allowed SPEIDOC_INPUT_DESADV1 –
  4. iOS 访问权限设置
  5. [006] 了解 Roslyn 编译器
  6. jq阻止事件冒泡(点击子级不触发父级)的两种方法
  7. jQuery1.4.2新特性
  8. 知识竞赛系统的计时器数字或滚动抽签数字不显示的原因解惑
  9. 使用maven打包项目执行clean时报错clean报错Failed to clean project
  10. 【SemiDrive源码分析】【驱动BringUp】40 - Touch Panel 触摸屏调试 (Android侧)
  11. 【音频】音频文件格式以及相关参数
  12. 阿里优酷视频分类方法???咋理解啊?
  13. linux java 自动安装_Centos7 linux 卸载自带安装的jdk 并yum自动安装jdk1.8
  14. vue实现:带关键字跳转企查查并搜索关键字对应的企业
  15. OpenCV-Python (官方)中文教程(部分四)
  16. 脉冲神经网络克服了类脑计算的硬件障碍,让AI更节能
  17. 树莓派3B+ 人脸识别(OpenCV)
  18. 丑数求解以及丑数的优化
  19. html5播放mp4视频代码
  20. SOTIF 预期功能安全ISO21448介绍、功能安全标准ISO26262 与若干安全标准的适用范围和开发流程映射

热门文章

  1. OpenGL 几何着色器Geometry Shader
  2. QT的QNdefFilter类的使用
  3. C++STL的deque容器
  4. ubuntu c 判断程序是否启动_刚刚接触编程的我,怎么判断自己是否适合做一个程序员?...
  5. Python——sys.stdout.flush()方法的作用
  6. 计算机网络传输层和应用层作业,计算机网络传输层作业.doc
  7. 「Caffe」python版本caffe编译
  8. 6.支持向量机(SVM)、什么是SVM、支持向量机基本原理与思想、基本原理、课程中关于SVM介绍
  9. CentOS7 64位下MySQL5.7安装与配置(YUM)
  10. User-Agent-Switcher和fiddler