encodeURIComponent编码后java后台的解码 (AJAX中文解决方案)

同学的毕业设计出现JavaScript用encodeURIComponentt编码后无法再后台解码的问题。

原来他是这样写的:

window.self.location="searchbytext.action?searchtext="+encodeURIComponent(seartext);

java处理的代码为:

searchtext=java.net.URLDecoder.decode(searchtext,"UTF-8");/*需要处理异常*/

咋一看觉的没问题啊,一编一解的,应该可以了。但还是出现了乱码。

后来网搜资料,发现原来在对后台java程序里的searchtext赋值的时候,本身已经使用了一次解码,不过解码的结果依然不对。所以我们可以在页面上进行两次编码操作,这样后台自动的那次就可以抵消掉一次,然后在使用searchtext=java.net.URLDecoder.decode(searchtext,"UTF-8");/*需要处理异常*/进行一次解码就好了。

正确的代码:

JavaScript:

window.self.location="searchbytext.action?searchtext="+encodeURIComponent(encodeURIComponent(seartext));

java:

searchtext=java.net.URLDecoder.decode(searchtext,"UTF-8");/*需要处理异常*/

另外还有一种方法是JavaScript进行一次编码,后台java处理时换种想法就好了:

java代码:

String s = new String(request.getParameter("name").getBytes("ISO8859-1"), "UTF-8");

//--------------------------------我使用的方法--------------------------------

JS编码:

var trmpStr = url+"?com=exportData"
+ "&dataAlias="+dataAlias
+ "&orgDm="+cboZz.getCode()
+ "&ksrq="+obj.ksrq
+ "&jzrq="+obj.jzrq
+ "&name="+encodeURIComponent(encodeURIComponent(txtMcInfo))
+ "&personCode="+personCode
+ "&queryStr="+encodeURIComponent(encodeURIComponent(queryStr));

JAVA解码:

String dataAlias = request.getParameter("dataAlias");//数据来源别名
String orgDm = request.getParameter("orgDm");//机构代码
String ksrq = request.getParameter("ksrq");//开始日期
String jzrq = request.getParameter("jzrq");//截止日期
String name = java.net.URLDecoder.decode(request.getParameter("name"),"UTF-8");//名称检索条件
Long personCode = null;//组员id
try{ personCode = Long.parseLong(request.getParameter("personCode"));}catch(Exception e){}
String queryStr = java.net.URLDecoder.decode(request.getParameter("queryStr"),"UTF-8");//名称检索条件

encodeURIComponent编码后java后台的解码 (AJAX中文解决方案)的更多相关文章

  1. encodeURIComponent编码后java后台的解码

    解决方法一: JavaScript: window.self.location="searchbytext.action?searchtext="+encodeURICompone ...

  2. Js编码和Java后台解码

    1.java.将resultMsg 转为utf-8 (1) resultMsg = URLEncoder.encode(resultMsg, "utf-8"); (2) new S ...

  3. 解决Jsp与Java后台之间url传值中文乱码问题

    JSP页面中,由JavaScript拼接url时,对于中文名称变量应该加上encodeURIComponent方法,对中文进行十六进制编码. 例如: url = /com/xxx/B.jsp?chin ...

  4. base64编码上传图片java后台接收实例

    原文地址:http://blog.csdn.net/tonyfreak/article/details/72522855 思路 前台传以data:image/jpeg;base64,开头的base64 ...

  5. 配置好solr搜索引擎服务器后java后台如何将商品信息导入索引库

    首先,在配置文件目录中添加solr 服务器的bean 配置文件 solr服务器的url可以写在配置文件中: url地址其实就是我们网页可以访问的solr地址: 然后我们写 service packag ...

  6. encodeURIComponent编码java后台解码出现乱码问题

    问题:JavaScript请求后台带着name参数,有中文进行编码:url?name=" + encodeURIComponent(name):java后台直接使用name或者name=ja ...

  7. Java Web项目中解决中文乱码方法总结

    一.了解常识: 1.UTF-8国际编码,GBK中文编码.GBK包含GB2312,即如果通过GB2312编码后可以通过GBK解码,反之可能不成立; 2.web tomcat:默认是ISO8859-1,不 ...

  8. java后台与jsp前台特殊字符处理(字符串编码与解码)

    在后台与前台数据交互时如果有特殊字符就很容易出现问题,所以就需要对字符串进行编码传输,在获取后再进行解码: 1.Java后台进行编码与解码 URLEncoder.encode(str,"ut ...

  9. Base64 JAVA后台编码与JS前台解码(解决中文乱码问题)

    中文通过Java后台进行Base64编码后传到前台,通过JS进行Base64解码时会出现中文乱码的问题,被这个问题也是困扰了几天,使用jquery.base64.js只能转码非中文字符,经过搜集各种方 ...

随机推荐

  1. 8个节点MySQL-cluster安装和配置,含两个管理节点

    换装jdk [root@clusterdata1 software]# rpm -qa | grep javajava-1.6.0-openjdk-1.6.0.0-1.50.1.11.5.el6_3. ...

  2. hdu 5206 Four Inages Strategy

    题目大意: 判断空间上4个点是否形成一个正方形 分析: 标称思想 : 在p2,p3,p4中枚举两个点作为p1的邻点,不妨设为pi,pj,然后判断p1pi与p1pj是否相等.互相垂直,然后由向量法,最后 ...

  3. poj 1190 生日蛋糕

    中文题 题目分析 搜索题,非常好的剪枝 由于深度一定(m),所以使用深度优先搜索,自上而下的设定蛋糕序号,最顶层的为第1层,……,最底层的蛋糕为第m层,很明显满足题目条件的前i层的(从顶层(也就是编号 ...

  4. xcode中的一些快捷键

    隐藏xcode command+h退出xcode command+q关闭窗口 command+w关闭所有窗口 command+option+w关闭当前项目 command+control+w关闭当前文 ...

  5. 作业6 NABCD模型分析,产品Backlog

    1.N(Need 需求): 随着生活水平的提高,每个家庭中都会有电脑和移动设备,可以更加快捷方便使用软件.以前孩子练习计算能力需要通做习题卷或老师出题目来进行,但现在只要通过这个四则运算的程序,可以自 ...

  6. 自动将String类型的XML解析成实体类

    package com.mooc.freemarker2dto; public class BaseDto { } package com.mooc.freemarker2dto; public cl ...

  7. JavaWeb学习记录(八)——servlet获取配置信息

    jdbc.properties内容如下: jdbcUrl=jdbc\:mysql\://localhost\:3306/animaluser=rootpass=root servlet获取资源信息代码 ...

  8. rsync+inotify实现服务器数据同步

    一.什么是rsync rsync,remote synchronize是一款实现远程同步功能的软件,它在同步文件的同时,可以保持原来文件的权限.时间.软硬链接等附加信息.rsync是用 “rsync算 ...

  9. 黑马程序员——JAVA基础之异常处理机制

    ------- android培训.java培训.期待与您交流! ---------- 异常:就是程序在运行时出现不正常情况. 异常由来:问题也是现实生活中一个具体的事物,也可以通过java的类的形式 ...

  10. Linux定时任务Crontab执行PHP脚本

    http://blog.chinaunix.net/uid-7552018-id-182133.html crontab执行php脚本 http://www.jb51.net/article/2913 ...