JS中默认编码导致URL重写时中文参数乱码
来源:互联网 发布:iso9001 软件开发 编辑:程序博客网 时间:2024/06/15 03:33
问题场景:触发GIS绑定的单击事件时,通过window对象提交url,附带“省份”,在页面加载完成时参数出现乱码,但地址栏中的参数正常?
问题解决:
网络版本之一:通过IDE修改外联的JS编码格式
我的版本:
由于我的JS量小,直接追在页面最下边了(懒得单独写js),所以另寻方法,经过测试,这种通过window提交的URL类似于内存中“字符到字节到字符”的情况,
所以决定在目标页面通过String自带的转码方法,重新编码后可行(js默认的编码格式ISO-8859-1),所以“String s=new String(params.getBytes("ISO-8859-1"),"UTF-8");”即可解决目标页面的接受中文参数乱码的问题。
注:通过查阅,这种方式虽然可以获取正确字符串,但是不被推荐,这种方法的编码解码大致原理是,中文字符按照ISO8859-1输出,一个汉字被拆成了两个欧洲字符,然后又从新拼接成了正确的汉字,增加了一次编码解码的开销,这种乱码原因主要是应用服务器的配置造成的,造成第一次解析按照ISO8859-1;
常见的解决方法是在tomcat的server.xml下的connetor属性中增加URIEncoding或者useBodyEncodingForURI属性。
引出场景:window对象提交URL的参数长度受限,而且由于我使用了iframe,目标JSP直接获取部分参数,网络版本解释是iframe和JSP的结合不被祝福,这下有点懵了?
问题解决:
网络版本之一:通过js为iframe动态增加表单,该变态设置n个隐藏域,这里放参数,然后通过submit提交,这个方法据说可用,不过没试。
我的版本:
不过目前我采用了一个方法,还是可行的,就是源页面中通过js将查询参数拼接成json字符串,目标页面通过第三方Jar和java来解析json字符串(也可以用js解析),不过我这里统一用了jsp表达式,这时页面就可以正常获取到url参数。
- JS中默认编码导致URL重写时中文参数乱码
- js中url中文参数乱码问题
- MyEclipse中 js中文乱码问题 VS MyEclipse默认编码
- url中文参数未编码出现乱码
- URL传递中文参数乱码----js对url进行编码和解码
- Js的Url中传递中文参数乱码,如何获取Url中参数问题
- Js的Url中传递中文参数乱码,如何获取Url中参数问题
- Js的Url中传递中文参数乱码,如何获取Url中参数问题
- Js的Url中传递中文参数乱码,如何获取Url中参数问题
- Js的Url中传递中文参数乱码,如何获取Url中参数问题
- Js的Url中传递中文参数乱码,获取Url中参数
- Js的Url中传递中文参数乱码,如何获取Url中参数问题
- Js的Url中传递中文参数乱码,如何获取Url中参数问题
- JSP中URL中文乱码问题!get提交时,服务器端乱码,url带中文参数乱码
- JS中URL编码参数
- js、URL传递含有中文参数时的乱码问题解决
- js url 传递参数时中文乱码问题解决
- js、URL传递含有中文参数时的乱码问题解决
- android studio生成aar包并在其他工程引用aar包
- Spring学习Eclipse的各种坑
- 大佬推荐的书
- oracle中merge的用法,以及各版本的区别
- Android利用canvas画各种图形(点、直线、弧、圆、椭圆、文字、矩形、多边形、曲线、圆角矩形)
- JS中默认编码导致URL重写时中文参数乱码
- 如何对抗内心无处不在的疲惫感?
- 尺取法模版
- Rails 常用的 Gem
- Zend Studio集成Apigility之添加和测试认证(1/2)
- Java多态性——对象的多态性(向上、向下转型)
- org.hibernate.exception.GenericJDBCException: Could not open connection解决思路 SSH框架
- /usr/bin/python^M: bad interpreter: No such file
- 中文字符编码标准+Unicode+Code Page