`
joycepro
  • 浏览: 7761 次
  • 性别: Icon_minigender_2
  • 来自: 南京
最近访客 更多访客>>
社区版块
存档分类
最新评论

解决: js向后台传参数出现乱码

    博客分类:
  • J2EE
阅读更多
前台js代码块中对各个变量进行编码处理如下:
var typeselect = form2.typeselect.value;
//var typeselect = document.getElementById('typeselect').value;
//怎么获得值得自己用自己的方式, 不一定要像我酱紫..


typeselect=encodeURI(typeselect);
typeselect=encodeURI(typeselect);
form2.action="xxxx.do?typeselect="+typeselect;
form2.submit();

在后台进行获取:
import java.net.URLDecoder;

if (request.getParameter("typeselect") != null) {
    typeid = request.getParameter("typeselect");
    typeid = URLDecoder.decode(typeid, "utf-8");
}

经测试, 乱码问题得以解决;
分享到:
评论
14 楼 kisbo110 2011-03-10  
<script type="text/javascript" src="test.js?username=zhang&password=ddd"></script>
如何获取后边的参数呢?
13 楼 zzy90718 2010-08-05  
1.
  在url那里把参数用escape(escape(id)) 编码两层再
  Escape.unescape(request.getParameter("id")).
2.
  url = encodeURI(url);///需要两次转码
  java 中name = URLDecoder.decode(name,"utf-8");

js的转码有这两种,第二种我不建议用,如果你是utf-8的操作则可以,如果是别的编码我建议用第一种。
12 楼 senlin789 2010-08-04  
typeid = new String(request.getParameter("typeselect").getBytes("iso-8859-1"), "utf-8");
不写encodeURI,楼主试试行不行呢
11 楼 smiky 2010-08-04  
看来应该是这样的,对于get请求,encode方法以UTF-8来编码字符,请求时这个UTF-8字符串会decode(,'UTF-8')就能得到相关字符,
对于POST请求,如果设置了解码方式,如request.setCharacterEncoding("UTF-8"),那么如果还用decode方法来解码的话前台就需要encode两次,实际上前台decode一次后台直接得到就可以用了不需要decode了
10 楼 joycepro 2010-08-04  
smiky 写道
joycepro 写道
smiky 写道
joycepro 写道
smiky 写道
为什么要encode两次?吾是菜鸟,请解释一下嘛


看你后台用的是什么语言咯,如果是asp.net,那前端只需一次 escape ,后端一次解码即可。

如果是PHP, java,那前端需要两次encodeURI,因为一次encodeURI还有一些字符不会被编码。

我刚查到的说法是,对于php用$_get方法来获取数据,它会自动decode一次,所以要encode两次,
java也是这样吗?



通常都是使用request.getParameter("paramname")获取参数数据,在request对象得到的数据都是经过解码过的,而解码过程中程序里是无法指定的.有很多新手说用request.setCharacterEncoding("字符集")可以指定解码方式,其实是不可以的,看servlet的官方API说明有对此方法的解释:Overrides the name of the character encoding used in the body of this request. This method must be called prior to reading request parameters or reading input using getReader().
可以看出: 在doGet()方法中, 这样的方式是无能为力的。

明白什么情况了,request.setCharacterEncoding只对post方法有效,


好哈 ~
针对doGet和doPost方法, 解决乱码的方式是不一样的哈.
9 楼 smiky 2010-08-04  
joycepro 写道
smiky 写道
joycepro 写道
smiky 写道
为什么要encode两次?吾是菜鸟,请解释一下嘛


看你后台用的是什么语言咯,如果是asp.net,那前端只需一次 escape ,后端一次解码即可。

如果是PHP, java,那前端需要两次encodeURI,因为一次encodeURI还有一些字符不会被编码。

我刚查到的说法是,对于php用$_get方法来获取数据,它会自动decode一次,所以要encode两次,
java也是这样吗?



通常都是使用request.getParameter("paramname")获取参数数据,在request对象得到的数据都是经过解码过的,而解码过程中程序里是无法指定的.有很多新手说用request.setCharacterEncoding("字符集")可以指定解码方式,其实是不可以的,看servlet的官方API说明有对此方法的解释:Overrides the name of the character encoding used in the body of this request. This method must be called prior to reading request parameters or reading input using getReader().
可以看出: 在doGet()方法中, 这样的方式是无能为力的。

明白什么情况了,request.setCharacterEncoding只对post方法有效,
8 楼 joycepro 2010-08-04  
shore1111 写道
恩,有的时候确实需要encode两次,通常都用过滤器encode一下也可以吧


写过滤器,设置request.setCharacterEncoding(”UTF-8″), 也是可以的哈.
7 楼 joycepro 2010-08-04  
smiky 写道
joycepro 写道
smiky 写道
为什么要encode两次?吾是菜鸟,请解释一下嘛


看你后台用的是什么语言咯,如果是asp.net,那前端只需一次 escape ,后端一次解码即可。

如果是PHP, java,那前端需要两次encodeURI,因为一次encodeURI还有一些字符不会被编码。

我刚查到的说法是,对于php用$_get方法来获取数据,它会自动decode一次,所以要encode两次,
java也是这样吗?



通常都是使用request.getParameter("paramname")获取参数数据,在request对象得到的数据都是经过解码过的,而解码过程中程序里是无法指定的.有很多新手说用request.setCharacterEncoding("字符集")可以指定解码方式,其实是不可以的,看servlet的官方API说明有对此方法的解释:Overrides the name of the character encoding used in the body of this request. This method must be called prior to reading request parameters or reading input using getReader().
可以看出: 在doGet()方法中, 这样的方式是无能为力的。
6 楼 shore1111 2010-08-04  
恩,有的时候确实需要encode两次,通常都用过滤器encode一下也可以吧
5 楼 smiky 2010-08-04  
joycepro 写道
smiky 写道
为什么要encode两次?吾是菜鸟,请解释一下嘛


看你后台用的是什么语言咯,如果是asp.net,那前端只需一次 escape ,后端一次解码即可。

如果是PHP, java,那前端需要两次encodeURI,因为一次encodeURI还有一些字符不会被编码。

我刚查到的说法是,对于php用$_get方法来获取数据,它会自动decode一次,所以要encode两次,
java也是这样吗?
4 楼 joycepro 2010-08-04  
smiky 写道
为什么要encode两次?吾是菜鸟,请解释一下嘛


看你后台用的是什么语言咯,如果是asp.net,那前端只需一次 escape ,后端一次解码即可。

如果是PHP, java,那前端需要两次encodeURI,因为一次encodeURI还有一些字符不会被编码。
3 楼 smiky 2010-08-04  
为什么要encode两次?吾是菜鸟,请解释一下嘛
2 楼 fantasy12121 2010-08-03  
这样做貌似中文字符很长的话,速度是相当的慢滴!!
1 楼 joycepro 2010-08-03  
js程序块里面使用encodeURI(varname)要使用两次 ..

相关推荐

    extjs 前后台交互参数出现中文乱码问题的解决方法

    在使用myeclipse过程中,我使用ajax同步请求传递参数到后台却出现中文乱码,这是我解决问题的代码,希望对您有所帮助

    网页资料收集 JAVA与JAVASCRIPT通信乱码问题 java javascript jsp的url提交带中文参数时后台取到的是乱码问题的解决

    网页资料收集 JAVA与JAVASCRIPT通信乱码问题 java javascript jsp的url提交带中文参数时后台取到的是乱码问题的解决 网页资料收集 JAVA与JAVASCRIPT通信乱码问题 java javascript jsp的url提交带中文参数时后台取到...

    SpringMVC解决乱码

    SpringMVC注解return参数出现乱码解决方案。

    JavaScript中出现乱码的处理心得

    客户端提交数据到后台,参数值有乱码情况,如:a.aspx?value=”中文值”&type=”%$#((&_特殊符号”; 2.后台读数据到客户端后出现乱码; 3.部分文件间js引用或css样式无效。 总结解决方法: 一:首先保证项目相关的...

    SmartUpload中文乱码解决

    SmartUpload中文乱码解决版本 亲自改写源码 jar包含源码 亲测可用 CSDN另一人上传的 不包含SmartUpload的Request类 不完善 201 511行进行修改 String s11 = new String(m_binArray, m_startData, (m_endData - m_...

    web程序开发中的URL乱码解决方案

    超连接乱码解决: 1.先把可能带有中文参数的连接地址转换为十六进制的编码 (1).如果是在js中使用的超级连接,则要先把该超连接经过两次转换为十六进制的编码后再保存在一个变量中,即:var url=encodeURI("...");url=...

    js实现GBK编码,避免默认utf-8编码

    前端页面通过ajax发送请求,参数都是默认使用utf-8编码格式对参数进行url编码,这样的后果就是,当后台页面如果使用gbk编码的话,会出现乱码的情况,然后网上找到一个大神写的gbk.js. 但是里面没有做出详细介绍,这里...

    php中文乱码.zip

    当php作为后台文件接收参数的时候,用JavaScript弹出一些提示时会出现乱码问题,现在已经完美解决!

    地址栏传递中文参数乱码在js里用escape转码

    乱码,乱码,头大,烦,话说设置Tomcat后可以解决,但有的时候不管用了,这时,我们可以考虑转码方式不直接传中文,在js里用escape转码,记得需要用两次,如: var str=escape(“这是中文参数”); str=escape(str); ...

    JQuery的Ajax中Post方法传递中文出现乱码的解决方法

    本文实例讲述了JQuery中Post传递中文出现的解决方法,即乱码ajax与jquery.ajax中文参数post传递乱码处理方法。分享给大家供大家参考。具体分析如下: 问题一: 今天在做项目时,需要用到Ajax,之前我在用GET方式传递...

    PHPYUN人才招聘系统V4.6Beta_VIP版更新包(20181211)百度网盘

    修复:分站后台职位模块JS功能失效 修复:职位详情H5分享页面,联系方式未同步 修复:企业产品SEO参数错误 修复:店铺招聘 待付费状态依然显示 修复:后台解绑记录模块分页链接错误 修复:企业会员中心部分模块...

    开放融合易用@门户移动开发新体验-逐浪CMS v8.0.1全面发布[基于dotNET Core]

    13、修复:后台--用户参数,checkbox选择无效Bug 14、修复:快捷导航相关Bug 15、修复:后台--用户注册字段,修改Bug 16、修复:用户--用户协码乱码,找加密码页无效Bug 17、增加:erp模块 18、优化:教育模块 19、改进:...

    整站打包某办公设备企业源码,HJCMS6.0内核无限制版本,免费下载

    解决国外空间读取数据库乱码问题 基本设置:后台可上传LOGO,修改尺寸,修改联系方式,是否开放、关闭注册。会员注册是否审核、留言是否审核等。 管 理 员:可新增超级管理员或普通管理员,不同级别管理员登陆后台...

    python中urllib.unquote乱码的原因与解决方法

    发现问题 Python中的urllib模块用来处理url相关的操作,...笔者在一个真实的Tornado应用中就遇到了这样的问题,浏览器通过请求传递到后台后,获取参数的值后: name = self.get_argument("name", "") name = urllib.u

    文章管理系统

    10.去掉后台参数设置中,[后台头部界面]和[用户管理菜单]项 11.解决后台编辑器之前空2格低于一个汉字的问题 12.完善几个细节问题 13.整合20121103~20121220补丁 2012年12月20日 ★更新方式:admin文件夹改成你...

    曼波整站系统5.3.0

    5.2.0 基础上清除了很多已知的bugs,并做了大量改进,主要表现为: &lt;br&gt;* 中文处理功能得到很大加强,在使用 UTF-8 编码时,令人讨厌的弹出框乱码、安装美化留言板组件造成后台菜单不见等情况很难再出现。...

    ASPCMS 开源企业网站建设系统 v2.6.6 GBK(直接使用版).zip

    3.增加{aspcms:cimages} type=about参数,解决单页多图调用 4.修复GBK版在后台设置UTF8模式时保存配置文件乱码 5.修改后台默认为全功能版本登陆 6.不再支持模板和编码设置不统一的杂交模式 7.utf8模板不再要求以...

    淘客帝国破解版

    商品详细页经常会出现JS异常链接问题。 增加一套UTF8模板。 增加升级包。 增加了参数过滤,避免申请APP时经常被淘宝拒绝。 5.03 Bete版 改动 火狐下跳转问题重新改动。 部分服务器不兼容段标签进不了后台问题。 ...

    科讯cms幻灯插件 v2.0.rar

    插件优势:用户可以自主在后台配置幻灯属性 无需js基础,无需css功底 全面智能出现当前幻灯的配置差数,而且本幻灯插件是由div css布局,完全符合seo需求!css全部经过w3c验证! 使用方法: 1下载程序包覆盖...

    仿百度贴吧程序贴吧123 GB2312终结版

    解决了js调用文件出现“缺少十六进制”的错误提示 贴吧排行和最新帖子去掉了分页 修改了后台贴吧分类管理 (重要) 增加了后台帖子搜索 修复了编辑帖子的错误 修复了表情显示的问题,在非ubb状态下,依然能正常使用...

Global site tag (gtag.js) - Google Analytics