今天在用超链接传值时,遇到了传递中文到Action中出现乱码的问题。经过在网上查找,找到了原因和一些解决办法:

一、出现问题的原因:(超连接传递值的基本方法是get方法  tomcat提供的默认编码方式-默认编码 :ISO-8859-1),在 tomcat4 中 get 与 post 的编码是一样的,所以只要在过滤器中通过 request.setCharacterEncoding 设定一次就可以解决 get 与 post 的问题。然而,在 tomcat5 中,get 与 post 的却进行了不同的处理,对于post方法,采用了和tomcat4的编码处理方法,通过request.setCharacterEncoding进行编码处理,而get方法将通过URI提交处理,tomcat会查找server.xml文件中Connector 元素中的参数URIEncoding的值进行对URI进行encoding,如果没有这个值,将用iso8859-1进行encoding,这样所产生了一个无法同时解决post和get的提交编码。这样一来就说明产生问题的原因并不是encoding的问题,而是tomcat处理的问题。

二、解决的办法:

1、修改tomcat的server.xml的配置文件,使其支持中文,在Connector标签下加入URIEncoding="GBK"(或“UTF-8”)

1

2、在Action或目的页面中接收参数的值时,指定编码方式

1 try{2 name = new String(name.getBytes("ISO-8859-1"), "utf-8");3 } catch(Exception e) {4 e.printStackTrace();5 }

但是使用这种方式,会有一种问题,那就是当一个页面既有用表单提交的内容(如:name1),也有用超链接提交这个内容(name1)时,在接收界面就要判断到底是用那种方式提交过来的,如果是前者(post),则不需要用上面的指定编码方式的方法来接收,若果用了,反而会乱码。如果是后者(get),则必须使用上面指定编码方式的方法来接收。这样一来,还需要在跳转的url中多加一个标志位来判断到底是用哪种方式提交过来的。不是很方便。

3、超链接提交转化为表单的post提交(这是网上别人的blog里写的,我就直接拷贝过来了)

1 functionlinkClick(linkObject) {2

3 var formObject = document.createElement(‘form‘);4 document.body.appendChild(formObject);5 formObject.setAttribute(‘method‘, ‘post‘);6 var url =linkObject.href;7 var uri = ‘‘;8 var i = url.indexOf(‘?‘);9

10 if(i == -1) {11 formObject.action =url;12 } else{13 formObject.action = url.substring(0, i);14 }15

16 if( i >= 0 && url.length >= i + 1) {17 uri = url.substring(i + 1, url.length);18 }19

20 var sa = uri.split(‘&‘);21

22 for(var i = 0; i < sa.length; i++) {23 var isa = sa[i].split(‘=‘);24 var inputObject = document.createElement(‘input‘);25 inputObject.setAttribute(‘type‘, ‘hidden‘);26 inputObject.setAttribute(‘name‘, isa[0]);27 inputObject.setAttribute(‘value‘, isa[1]);28 formObject.appendChild(inputObject);29 }30

31 formObject.submit();32

33 return false;34 }

1 click me

使用这种方式,就把超链接的跳转方式转变成为了表单的提交方式,统一为了post方法,那么在目的界面或Action类中接收此参数时,直接接收就行了,不必进行多余的操作。

4、看到还有一种说是在传递中文前,先用java.net.URLEecoder.encode(value),进行编码,在接收时再用java.net.URLDecoder.decode(value) 通过这个语句进行解码,不过我没有弄成功(js代码中URLEecoder.encode(value)没有通过),希望用这种方法成功的人,能告诉我是什么原因,怎么弄。

三、附上我查资料是所看的几篇帖子地址

原文:http://www.cnblogs.com/lbj-utopia/p/4214201.html

html超链接传递中文参数,超链接传递中文出现乱码问题相关推荐

  1. 关于JAVA中URL传递中文参数,取值是乱码的解决办法

    今天遇到一个问题就是在Action当中把一条中文信息绑定在URL的后面,ActionForward到别一个页面时,用reqeust.getParameter取出是出现乱码的问题. 现解决办法如下: 1 ...

  2. js向php传递中文参数,JS传递参数时对中文进行编码和解码

    Nginx 配置简述 不论是本地开发,还是远程到 Server 开发,还是给提供 demo 给人看效果,我们时常需要对 Nginx 做配置,Nginx 的配置项相当多,如果考虑性能配置起来会比较麻烦. ...

  3. Mybatis查询传递单个参数和传递多个参数用法

    一:单个参数,Mybatis不会做特殊处理 二:多个参数,Mybatis会做特殊处理 1:传递多个多个参数时候,第一种写法如下 比如传递了两个参数,用 #{param1} and  #{param2} ...

  4. ajax传递多参数类型,Ajax传递不同类型的参数

    1.目录结构: 1.传递普通的参数 2.传递对象 3.传递List 4.传递数组 1.1 前端页面 前端页面.png 1.2 HTML代码 注意:需要引入layui噢 button{ margin-t ...

  5. liunx 上get 不到url参数 java_URL传递中文参数,大坑一枚,Windows与Linux效果竟然不一致...

    下午,计划2个小时搞定,个人官网第6次升级,就可以干点轻松的事了,结果,下午多搞了2个小时,晚上又搞了2个小时,才搞定.最后一个世界难题是,URL传递中文参数.问题大致是这么出现的:我为"博 ...

  6. Js的Url中传递中文参数乱码的解决

    一:Js的Url中传递中文参数乱码问题,重点:encodeURI编码,decodeURI解码: 1.传参页面 Javascript代码: 2. 接收参数页面:test02.html 二:如何获取Url ...

  7. response.sendredirect传递中文参数_Philips磁共振操作之参数 Contrast(3)

    尊敬的各位老师,朋友,又到了磁共振基本操作及参数介绍专题了.前几期的文章,我们分别介绍了Philips磁共振操作界面的一些含义,扫描序列的名称及意义,Geometric参数项目的操作及Contrast ...

  8. springmvcget中文乱码_解决SpringMVC Controller 接收页面传递的中文参数出现乱码的问题...

    新配置一个spring的MVC项目,发现对Get请求的中文参数出现了乱码: 查看了SpingMVC中关于编码的配置(在web.xml中),如下: encodingFilter org.springfr ...

  9. python传中文参数_解决Python传递中文参数的问题

    今天有个需要需要传递中文参数给URL 但是在GBK环境下的脚本传递GBK的参数老是给我报UNICODE的解码错误.烦的很. 所以我们果断选择用urlencode来处理中文, 由于国内外网站编码不同,国 ...

最新文章

  1. CVPR一区审稿人分享:图像分割论文通关攻略
  2. opsforlist 存在贼覆盖_RedisTemplate常用集合使用说明-opsForList(三)
  3. Android AsyncTask分析
  4. 3.2 目标点检测-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
  5. mysql privileges_[转]mysql privileges
  6. mysql新增用户和删除用户
  7. android获取网络图片
  8. css 点击效果_使用CSS实现逼真的水波纹点击效果
  9. c语言中3%3e2%3e1的值,C语言--ch2--数据类型和表达式.ppt
  10. python vimrc的安装,并用pep8检测python代码
  11. 如何不用ps来吸取颜色并将颜色一键插入到网页,自动生成代码?
  12. RecyclerView实现京东分类联动效果
  13. 微信小程序富文本编辑器
  14. vue路由报错Avoided redundant navigation
  15. 全基因组SNP分型(Whole Genome SNP Genotyping)分析简介
  16. html怎么用wps打开pdf文件,怎么使用电脑wps对PDF文件进行修改
  17. java计算机毕业设计交通规则考试系统源码+mysql数据库+系统+lw文档+部署
  18. 清算中的二清是什么东东
  19. MIPS微程序CPU设计
  20. 用R语言玩玩茅台股票

热门文章

  1. java 之创建对象
  2. qq群文件无法打开显示内容?
  3. win10修改磁盘分区符号-名称
  4. Softmax 回归(PyTorch)
  5. 笔记应用选择和知识管理
  6. 毕设—基于树莓派的家居环境智能监测系统设计与实践
  7. linux screen 全部退出 -- 脚本
  8. 为什么geany不能执行python程序_python的geany文本编辑器无法执行,如何解决?
  9. 计算机考试查成绩没有准考证
  10. (二)第十三回:无意听课醍醐灌顶 血战哲理分心误事【林大帅作品】