首页 / JAVA / Js编码和Java后台解码
Js编码和Java后台解码
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Js编码和Java后台解码,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2043字,纯文字阅读大概需要3分钟。
内容图文
注:
在使用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");
原文:http://www.cnblogs.com/tancp/p/3691756.html
内容总结
以上是互联网集市为您收集整理的Js编码和Java后台解码全部内容,希望文章能够帮你解决Js编码和Java后台解码所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。