从js向Action传中文参数出现乱码问题的解决方法


Posted in Javascript onDecember 29, 2013

做项目的时候,发现Action获取jsp表单中的中文参数,只要整个项目都采用UTF-8编码格式都不会出现乱码问题;但JSP中用到JS,并从JS向Action传中文参数,就会出现中文乱的现象。几经询问百度,上面说法很多。

经过实践发现下面的方法可以解决中文乱码问题:

JSP的JS中:中文参数用encodeURI(encodeURI(中文参数)),经过两次转码。例如:

function show(next,id,realName){ 
document.forms['f2'].action="usersearchNextPage?next="+next+"&id="+id+"&realName="+encodeURI(encodeURI(realName)); 
document.forms['f2'].submit(); 
}

其中 realName是中文参数。故在提交的URL中将realName转码两次。encodeURI(encodeURI(realName))

Action中:接收中文参数时解码。用:java.net.URLDecoder.decode(realName,"UTF-8");

如:

String realName = ServletActionContext.getRequest().getParameter("realName"); 
try { 
realName = java.net.URLDecoder.decode(realName,"UTF-8"); 
} catch (UnsupportedEncodingException e1) { 
e1.printStackTrace(); 
}

经过上述处理,问题解决。
Javascript 相关文章推荐
超级24小时弹窗代码 24小时退出弹窗代码 100%弹窗代码(IE only)
Jun 11 Javascript
JS逆序遍历实现代码
Dec 02 Javascript
JavaScript实现复制内容到粘贴板代码
Mar 31 Javascript
js拖拽的原型声明和用法总结
Apr 04 Javascript
vue中用H5实现文件上传的方法实例代码
May 27 Javascript
详解Angular 4 表单快速入门
Jun 05 Javascript
weui框架实现上传、预览和删除图片功能代码
Aug 24 Javascript
浅谈JsonObject中的key-value数据解析排序问题
Dec 06 Javascript
vue elementUI 表单校验功能之数组多层嵌套
Jun 04 Javascript
vue中keep-alive,include的缓存问题
Nov 26 Javascript
解决ant design vue 表格a-table二次封装,slots渲染的问题
Oct 28 Javascript
字节飞书面试promise.all实现示例
Jun 16 Javascript
js data日期初始化的5种方法
Dec 29 #Javascript
javascript轻松实现当鼠标移开时已弹出子菜单自动消失
Dec 29 #Javascript
css3元素简单的闪烁效果实现(html5 jquery)
Dec 28 #Javascript
js动态调用css属性的小规律及实例说明
Dec 28 #Javascript
JQuery的$命名冲突详细解析
Dec 28 #Javascript
js中call与apply的用法小结
Dec 28 #Javascript
SinaEditor使用方法详解
Dec 28 #Javascript
You might like
ThinkPHP与PHPExcel冲突解决方法
2011/08/08 PHP
php判断手机访问还是电脑访问示例分享
2014/01/20 PHP
PHP反向代理类代码
2014/08/15 PHP
Apache PHP MySql安装配置图文教程
2016/08/27 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
2018/06/13 PHP
Laravel 自带的Auth验证登录方法
2019/09/30 PHP
详解CSS样式中的 !important * _ 符号
2021/03/09 HTML / CSS
appendChild() 或 insertBefore()使用与区别介绍
2013/10/11 Javascript
jquery按回车提交数据的代码示例
2013/11/05 Javascript
js实现温度计时间样式代码分享
2015/08/21 Javascript
Easyui Treegrid改变默认图标的方法
2016/04/29 Javascript
JavaScript 闭包机制详解及实例代码
2016/10/10 Javascript
jQuery实现节点的追加、替换、删除、复制功能示例
2017/07/11 jQuery
微信小程序删除处理详解
2017/08/16 Javascript
vue 界面刷新数据被清除 localStorage的使用详解
2018/09/16 Javascript
解决vuecli3.0热更新失效的问题
2018/09/19 Javascript
JavaScript数组、json对象、eval()函数用法实例分析
2019/02/21 Javascript
vuex根据不同的用户权限展示不同的路由列表功能
2019/09/20 Javascript
js实现聊天对话框
2020/02/08 Javascript
JavaScript实现缓动动画
2020/11/25 Javascript
React实现todolist功能
2020/12/28 Javascript
Python字符串替换实例分析
2015/05/11 Python
pycharm 将python文件打包为exe格式的方法
2019/01/16 Python
python3 实现口罩抽签的功能
2020/03/11 Python
python 实现仿微信聊天时间格式化显示的代码
2020/04/17 Python
TensorFlow固化模型的实现操作
2020/05/26 Python
matplotlib bar()实现多组数据并列柱状图通用简便创建方法
2021/02/24 Python
CSS3的常见transformation图形变化用法小结
2016/05/13 HTML / CSS
椰子猫砂:CatSpot
2018/08/27 全球购物
TripAdvisor日本:全球领先的旅游网站
2019/02/14 全球购物
Linux操作面试题
2012/05/16 面试题
大学生如何写自荐信
2014/01/08 职场文书
硕士生工作推荐信
2014/03/07 职场文书
篮球比赛策划方案
2014/06/05 职场文书
评职称个人总结
2015/03/05 职场文书
叶县这家生产军用电台的兵工厂,人称“四机部”,走出一上将
2022/02/18 无线电