JS解决url传值出现中文乱码的另类办法


Posted in Javascript onApril 08, 2013

 在开发web应用时,很多情况都需要进行前后台的数据交互,有时候我们可能需要把前台的中文数据通过URL的方式传递到后台,但此时有个令人头疼的问题,因为Java中网络传输使用的标准字符集是ISO-8859-1,所以在后台用request.getParameter("message");获取前台传过来的中文时,得到的还是ISO-8859-1字符集,中文就会出现乱码现象,好多人的解决办法是在前台传递中文之前进行decode,后台再decode一下进行转换,这样感觉很是麻烦,难道就没其他的方式解决吗?

       苦思冥想了一下:为什么用表单的方式就可以传递中文,而URL的方式就不行了呢?非得用URL传值的方式才能解决问题吗?这里我想到了动态表单,何不用它来解决呢,示例如下:

       假设有如下应用场景:KPI列表页面中,对每个KPI都有生成预警数据的功能,当点击列表中每个KPI生成数据的按钮时,需要把KPI的id和name传递到后台。

       前端对应的js方法:

         用URL传值的写法:

           function createData(indexId,indexName){
                     window.location.href="catalogAction.do?action=CreateIndexData&catalogId="+indexId+"&catalogName="+indexName+"&random="+Math.random();
                   }

用这种方法,由于KPI名称大多为中文,在后台接收到的值肯定为乱码。

若用动态生成表单的方式就可以解决:

function createData(indexId,indexName){
               var urlStr =  "catalogAction.do?action=CreateIndexData&PcatalogId=<c:out value='${catalogId}'/>&catalogId="+indexId+"&random="+Math.random();
               var f= document.createElement('form');
               f.action = urlStr;
               f.method = 'post';
               document.body.appendChild(f);
               var temp=document.createElement('input');
               temp.type= 'hidden';
               temp.value=indexName; 
               temp.name='catalogName';
               f.appendChild(temp);
               f.submit();
}

对中文字段用form的方式提交过去,不是中文的仍然用URL传,这样就轻松解决了向后台传递中文出现乱码的情况。
Javascript 相关文章推荐
JavaScript Eval 函数使用
Mar 23 Javascript
js 上传图片预览问题
Dec 06 Javascript
jquery 笔记 事件
Nov 02 Javascript
JavaScript怎么判断图片是否加载完成以便获取其尺寸
May 08 Javascript
JS实现5秒钟自动封锁div层的方法
Feb 20 Javascript
jQuery复制表单元素附源码分享效果演示
Sep 30 Javascript
TypeScript Type Innference(类型判断)
Mar 10 Javascript
js实时获取窗口大小变化的实例代码
Nov 18 Javascript
JavaScript用JSONP跨域请求数据实例详解
Jan 06 Javascript
Angular4如何自定义首屏的加载动画详解
Jul 26 Javascript
vue源码学习之Object.defineProperty 对数组监听
May 30 Javascript
extjs图表绘制之条形图实现方法分析
Mar 06 Javascript
JS继承--原型链继承和类式继承
Apr 08 #Javascript
原生js实现shift/ctrl/alt按键的获取
Apr 08 #Javascript
原生js实现跨浏览器获取鼠标按键的值
Apr 08 #Javascript
纯js实现瀑布流展现照片(自动适应窗口大小)
Apr 08 #Javascript
javascript中常用编程知识
Apr 08 #Javascript
利用webqq协议使用python登录qq发消息源码参考
Apr 08 #Javascript
setInterval,setTimeout与jquery混用的问题
Apr 08 #Javascript
You might like
PHP生成指定长度随机数最简洁的方法
2014/07/14 PHP
关于PHP 如何用 curl 读取 HTTP chunked 数据
2016/02/26 PHP
tp5 sum某个字段相加得到总数的例子
2019/10/18 PHP
js 模拟气泡屏保效果代码
2010/07/10 Javascript
Jquery右下角抖动、浮动 实例代码(兼容ie6、FF)
2013/08/15 Javascript
javascript修改表格背景色实例代码分享
2013/12/10 Javascript
jquery引用方法时传递参数原理分析
2014/10/13 Javascript
JavaScript事件 &quot;事件对象&quot;的注意要点
2016/01/14 Javascript
jQuery复合事件用法示例
2017/06/10 jQuery
vue中接口域名配置为全局变量的实现方法
2018/09/20 Javascript
js使用Promise实现简单的Ajax缓存
2018/11/14 Javascript
如何用RxJS实现Redux Form
2018/12/29 Javascript
微信小程序class封装http代码实例
2019/08/24 Javascript
vue实现PC端分辨率适配操作
2020/08/03 Javascript
ant design pro中可控的筛选和排序实例
2020/11/17 Javascript
python算法学习之桶排序算法实例(分块排序)
2013/12/18 Python
python3实现ftp服务功能(客户端)
2017/03/24 Python
对numpy中向量式三目运算符详解
2018/10/31 Python
Python生成器实现简单&quot;生产者消费者&quot;模型代码实例
2020/03/27 Python
Python连接HDFS实现文件上传下载及Pandas转换文本文件到CSV操作
2020/06/06 Python
解决Python3.8运行tornado项目报NotImplementedError错误
2020/09/02 Python
Python通过getattr函数获取对象的属性值
2020/10/16 Python
资生堂美国官网:Shiseido美国
2016/09/02 全球购物
北美个性化礼品商店:Things Remembered
2018/06/12 全球购物
校园歌咏比赛主持词
2014/03/18 职场文书
优秀党员自我评价范文
2014/09/15 职场文书
党委干部批评与自我批评发言稿
2014/09/28 职场文书
年终工作总结范文2014
2014/11/27 职场文书
个人党性锻炼总结
2015/03/05 职场文书
材料员岗位职责范本
2015/04/11 职场文书
2015年公务员工作总结
2015/04/24 职场文书
安全教育培训心得体会
2016/01/15 职场文书
2019年大学生职业生涯规划书最新范文
2019/03/25 职场文书
Java获取e.printStackTrace()打印的信息方式
2021/08/07 Java/Android
Win11查看设备管理器
2022/04/19 数码科技
Python实现信息管理系统
2022/06/05 Python