Js编码和Java后台解码
1、java。将resultMsg 转为utf-8
(1) resultMsg = URLEncoder.encode(resultMsg, "utf-8");
(2) new String(request.getParameter("name").getBytes("ISO8859_1"),"UTF-8")
java编码解码:
String a = "lalala";
a = URLEncoder.encode(a, "UTF-8");//编码
a=URLDecoder.decode(a, "UTF-8");//解码
js编码解码:
name = window.encodeURI(window.encodeURI(name)); //编码
注:
在使用get提交,url传递参数的时候,会带来中文乱码的问题,对此可以使用js编码来解决。
Js编码的几种方式区别:
1.window.escape()与HttpUtility.UrlEncodeUnicode()编码格式一样:将一个汉字编码为%uxxxx格式
不会被window.escape编码的字符有:@ _ - . * / + 这与http://www.w3school.com.cn/js/jsref_escape.asp上的解释不符合
2.window.encodeURIComponent()与HttpUtility.UrlEncode()编码格式一样:将一个汉字编码为%xx%xx%xx的格式
不会被window.encodeURIComponent编码的字符有:' ( ) * - . _ ! ~ 这与http://www.w3school.com.cn/js/jsref_encodeURIComponent.asp解释相符合
不会被HttpUtility.UrlEncode编码的字符有:' ( ) * - . _ ! 相比较而言,HttpUtility.UrlEncode比window.encodeURIComponent多一个 ~ 编码
3.不会被window.encodeURI编码的字符有: - _ . ! * ( ) ; / ? : @ & = $ , #,与encodeURIComponent对比,发现encodeURI不对:;/?:@&=+$,#这些用于分隔 URI 组件的标点符号进行编码
例:
- function zhuanma(){
- var name = document.getElementById("name").value;
- var pass = document.getElementById("pass").value;
- name = window.encodeURI(window.encodeURI(name));
- var url = "<%=request.getContextPath()%>/user/userlogin.action?name="+name+"&pass="+pass+";
- window.open(url,'','width=800,height=250,top=80,left=70,location=no,status=no,scrollbars=yes,resizable=yes');
- }
- }
后台java解码:
name = java.net.URLDecoder.decode(name,"UTF-8");
这样就解决了get传参中文乱码的问题。
疑问:
同学的毕业设计出现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编码和Java后台解码的更多相关文章
- encodeURIComponent编码后java后台的解码 (AJAX中文解决方案)
encodeURIComponent编码后java后台的解码 (AJAX中文解决方案) 同学的毕业设计出现JavaScript用encodeURIComponentt编码后无法再后台解码的问题. 原来 ...
- encodeURIComponent编码java后台解码出现乱码问题
问题:JavaScript请求后台带着name参数,有中文进行编码:url?name=" + encodeURIComponent(name):java后台直接使用name或者name=ja ...
- encodeURIComponent编码后java后台的解码
解决方法一: JavaScript: window.self.location="searchbytext.action?searchtext="+encodeURICompone ...
- Java和Js编码(encodeUrl)解码(decodeUrl)对空格的差异问题
今天解决一个问题的时候遇到了一个编码解码问题,记录一下. 1. Js用的是encodeURIComponent()方法编码,后面的都以该编码方式处理出来的数据为准. 2. Java用的是URLDeco ...
- js中文编码到C#后台解码
escape() 方法: 采用ISO Latin字符集对指定的字符串进行编码.所有的空格符.标点符号.特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编 ...
- 【转】JS前台加密,java后台解密实现
因项目需求,需要一些敏感信息进行加密,不能以明文暴露到浏览器. 然后后台进行解密操作 先看一下效果图 未对其加密传输 1.前台JS <script type="text/javascr ...
- rsa实现js前台加密java后台解密
前段时间写了一个rsa前台加密到后台用java解密,下面共享下实现思路: 准备工作:第三方包是必须的 bcprov-jdk15on-148.jar commons-codec-1.7.jar comm ...
- base64编码上传图片java后台接收实例
原文地址:http://blog.csdn.net/tonyfreak/article/details/72522855 思路 前台传以data:image/jpeg;base64,开头的base64 ...
- js前台编码,asp.net后台解码 防止前台传值到后台为乱码
js编码: encodeURI() 后台解码:HttpUtility.UrlDecode()
随机推荐
- 从打车软件你能想到多少?盈利模式?商机?大数据?移动互联网蛋糕?生活方式改变withApp?
物联网.云服务.大数据.. 淘宝.12306.卡通...一个产品改变一次生活方式. 打车app,无疑是改变生活方式的又一个产品.从打车软件,你能看到什么? 个人认为,打车软件值得各种投资方斥资,最重要 ...
- POJ-1177 Picture 矩形覆盖周长并
题目链接:http://poj.org/problem?id=1177 比矩形面积并麻烦点,需要更新竖边的条数(平行于x轴扫描)..求横边的时候,保存上一个结果,加上当前长度与上一个结果差的绝对值就行 ...
- POJ1947 - Rebuilding Roads(树形DP)
题目大意 给定一棵n个结点的树,问最少需要删除多少条边使得某棵子树的结点个数为p 题解 很经典的树形DP~~~直接上方程吧 dp[u][j]=min(dp[u][j],dp[u][j-k]+dp[v] ...
- php5.5 yum源
PHP官网在下载页面中只有源代码下载,当然使用编译安装也是可以的,但是使用二进制包安装会非常快速.虽然PHP官网没有提供二进制安装包,但是它推荐了两个第三方的YUM源(CentOS中默认的YUM安装的 ...
- js关键字
这已经是我第二次遇到这个问题了..关于关键字,用来做函数的命名,,,在高清上没问题,标清上秒死...页面都出不来...wtf...做个记录.. js关键字http://www.itxueyuan.or ...
- 多目标遗传算法 ------ NSGA-II (部分源码解析) 临时种群生成新父代种群 fillnds.c
/* Nond-domination based selection routines */ # include <stdio.h> # include <stdlib.h> ...
- CSS3:clip-path具体解释
我的一个学生,Heather Banks,想要实现他在Squarespace看到的一个效果: 依据她的以往经验,这个站点的HTML和CSS是全然在她的能力范围以内,于是我帮助她完毕了这个效果.显示na ...
- RHCA442学习笔记-Unit11内存缓存
Unit 11 Memory Caches 内存缓存 学习目标: A. 使用内存来改善运行慢的子系统的服务时间. 11.1 Strategi ...
- careercup-递归和动态规划 9.1
9.1 有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶.2阶或3阶.实现一个方法,计算小孩有多少种上楼梯的方法. 解法: 我们可以采用自上而下的方式来解决这个问题.小孩上楼梯的最后一步,也就是 ...
- 在cocos2d-x中使用位图字体
http://blog.csdn.net/fansongy/article/details/9006677 通常情况下,游戏中绚丽的文字和数字都不是字体生成的而是"贴"上去!今天, ...