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

摘要:
Action获取jsp表单中的中文参数,发现Action获取jsp格式的中文参数。只要整个项目使用UTF-8编码格式,就不会出现乱码问题;它还将中文参数从JS传输到Action。通过实践发现,以下方法可以解决中文乱码问题:接收中文参数时解码。地址栏传输中文参数乱码。使用escape对js中的jsescape进行转码,
Action获取jsp表单中的中文参数,只要整个项目都采用UTF-8编码格式都不会出现乱码问题;但JSP中用到JS,并从JS向Action传中文参数,就会出现中文乱的现象
 
 
做项目的时候,发现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(); 

经过上述处理,问题解决。

免责声明:文章转载自《从js向Action传中文参数出现乱码问题的解决方法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Android自定义控件(二)浅谈中途相遇攻击--meet-in-the-middle attack下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Yii2的深入学习--行为Behavior

我们先来看下行为在 Yii2 中的使用,如下内容摘自 Yii2中文文档 行为是 [[yiiaseBehavior]] 或其子类的实例。行为,也称为 mixins,可以无须改变类继承关系即可增强一个已有的 [[yiiaseComponent|组件]] 类功能。当行为附加到组件后,它将“注入”它的方法和属性到组件,然后可以像访问组件内定义的方法和属性一样访问它...

Latex文件分别用Texwork和Winedt打开时,产生中文乱码的解决方法

中文兼容方法(能保证编译成功) usepackage{CJK} egin{document} egin{CJK}{GBK}{kai} ... 中文 ... end{CJK} end{document} 上述tex代码中 ... 表示其他Tex命令 Texworks和Winedt下均使用PdfLatex编译 解决中文乱码,有两种方法: 方...

MIB Browser使用方法

1.1 安装MIB Browser MIB Browser工具用于查询SNMP Agent上的MIB变量,接收SNMP Agent上报的Trap消息,是用来调试验证NetEco SNMP性能北向接口不可或缺的工具。 1.1.1 获取安装包 MG-SOFT MIB Browser的安装包可以直接访问MG-SOFT的官网获取。 1.1.1 安装 步骤 1 进入...

C#+Winform开发窗体程序

第一章:WinForm基础 一、概述 1、Windows Form(简称WinForm) 是微软.NET平台下用于开发"图形界面"应用程序的组件。   2、C/S架构 客户机(Client)/服务器(Server),是软件系统体系结构。 通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。  ...

HttpURLConnection使用POST方法参数乱码

如题,HttpURLConnection使用POST方法发起http请求,参数通过form来传递(并非使用URL传递参数),出现了中文乱码的情况。 具体描述为:将请求参数以 Content-Disposition: form-data; name="name" value 形式上传,然后使用OutputStream.write传送,结果中文参数会出现...

vscode折叠代码后,没有显示结束大括号,只显示省略号怎么解决

最近vscode 更新了之后偶然发现,折叠地代码之后,结束的大括号没有显示出来,而是只显示省略号,感觉很不方便,如下图: 这样如果我要在下面接着写同级代码的话,感觉不踏实,因为不确定上一个代码块(通常是一个方法)到底结束没。。 其实解决方法很简单: 文件  ---->  首选项 -----------> 设置,打开设置菜单,如下图执行三步:...