JS 传值到jsp 中文字符乱码

转载 2013年12月04日 09:36:51

JS 传值到jsp 中文字符乱码

在实际开发中碰到一个非常头痛的问题,在js文件中向jsp页面传中文字符时碰见了一个字符乱码(get传递方式)。在传值时使用encodeURI进行了编码,然后再接收端(jsp)使用了URLDecoder.decode('','字符编码'),进行解码但还是有字符乱码问题。

解决办法,对传递中文字符的参数进行两次的的编码encodeURI(encodeURI("")),就OK!.

为什么要encodeURI(url)两次才不会出现乱码?

因为Tomcat服务器会自动帮你做一次URLDecode,所以再加上你自己在代码里面写的URLDecode,一共就是两个Decode了,既然要两次Decode,当然就需要两次Encode了。或许你会问,干脆只Encode一次,然后在java代码里不Decode,呵呵,这个也是不行的,这其实也就是为什么要进行Encode的原因吧

1.传参编码(编两次码)
function searchfriends(tab,param){
  window.location.href="/jttiyan/hi/searchFriend.action?tab="+tab+"&param="+encodeURI(encodeURI(param));
}

2.jsp中接受参数解码(解两次码)
var param=decodeURI(decodeURI('<s:property value="#request.parameters.param[0]"/>'));

3.action中接受参数解码
java.net.URLDecoder.decode(request.getParameter("param"),"utf-8");

关于js传值到action中乱码的问题

一、场景:最近在做一个微博项目,用过微博的人都知道,微博里有话题这个概念,在textarea 里输入##,就代表一个话题。发布微博时使用的ajax方式提交,微博内容会拼到URI中传到服务器端,发现用I...
  • DING135DING
  • DING135DING
  • 2015年01月11日 12:15
  • 614

js传值到后台中文乱码解决方法

使用get方式通过url传参时,中文传到后台会发现变成乱码,如:window.location.href="detail?appname="+appname; 以上appname的值传到后台会变成乱码...
  • u010131415
  • u010131415
  • 2015年07月27日 17:06
  • 761

JSP,js,servlet之间传值时中文乱码的处理

1、JSP和servlet之间互传 在JSP的开头,一定要有: 在servlet文件xxx.java的doGet或者doPost开头,要有 response.setHeader("conten...
  • shuiyan
  • shuiyan
  • 2015年11月08日 22:01
  • 5288

jsp传值乱码的解决办法

缘由写jsp数据库作业的时候,有一个问题是模糊查询,实在是折腾了有点久,不过解决了的感觉甚好。jsp页面inputCondition.jsp截取部分 ...
  • sinat_27714067
  • sinat_27714067
  • 2016年10月12日 23:36
  • 787

JS中页面跳转,传值包含中文时乱码解决方案

首先,在JS中将要传递的中文编码:encodeURI(encodeURI(value)); 然后在跳转界面中取值时通过以下方式解码:java.net.URLDecoder.decode(value ...
  • southcamel
  • southcamel
  • 2012年06月29日 17:22
  • 24108

jsp页面向action传值乱码的问题

JSP页面向action传值时中文乱码的问题,记得以前做项目的时候出现过,后来我到网上搜索了一系列的资料,把所有别人说要加的条件都加上去,稀里糊涂就解决了。最近做一个项目,又遇到这个问题,我决定试一试...
  • moon__stone888888
  • moon__stone888888
  • 2016年07月13日 11:18
  • 2366

jsp 传值jsp 数据库 乱码解决的攻略 全套

jsp传值给jsp中文乱码 传值给数据库乱码的解决方法 所有的用到编码的全部统一utf-8 1.装mysql的时候有选择编码的界面的那个地方选utf-8编码 2 建数据库的时候选择 字符...
  • chenaini119
  • chenaini119
  • 2014年08月08日 11:13
  • 1071

jsp或java中前后台传值乱码解决

如果服务器是tomcat前台传后台:url?par=测试,   则par到后台取到的值为乱码一般的处理方法:String str= reqDTO.getValue("par");str= new St...
  • zlreal
  • zlreal
  • 2007年10月23日 19:42
  • 5707

浅谈JAVA-JS-JSP之间传值的各种方法

此文是为了归纳一下在JAVA-JSP-JS中传值的各种方法以便在以后的学习中熟练掌握和更好地在项目中使用。 1、JS封装的方法: ---------------------------------...
  • Murex_Dustyone
  • Murex_Dustyone
  • 2016年10月27日 14:36
  • 8599

jsp页面 utf-8 向后台传值乱码(spring)

今天在搭建开发框架时,遇到一个小插曲,记录一下吧! 情况描述:jsp页面编码,数据库编码都是utf-8这是没问题的,但是页面向Controller传值时乱码 解决方案: ...
  • ftx2540993425
  • ftx2540993425
  • 2016年05月22日 14:20
  • 1691
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JS 传值到jsp 中文字符乱码
举报原因:
原因补充:

(最多只允许输入30个字)