JS传值中文乱码解决方案

JS传值中文乱码解决方案

一、相关知识

1,Java相关类:

(1)java.net.URLDecoder类

  HTML格式解码的实用工具类,有一个静态方法:public static  String  decode(String   变量名,String   编码格式);给变量指定解码。

(2)java.net.URLEncoder类

  HTML格式编码的实用工具类,有一个静态方法:public static  String  encode(String   变量名,String   编码格式);给变量指定编码。

2,JavaScript的编码函数:

  encodeURI(String  URIstring):把字符串作为 URI 进行编码。

二、解决JS传值中文乱码

1,问题:

  js在url中传值,前台和后台编码不一致,导致中文乱码;

2,解决方案:

(1)方案一:

前台:js代码使用encodeURI()函数:url = encodeURI(url);注意:这里是整个URL地址,也可以是具体乱码变量。

后台:java代码String linename = new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8");

(2)方案二:

前台:jsp代码对url使用两次encodeURI()函数:url=encodeURI(encodeURI(url));//用了2次encodeURI

后台:java代码使用java.net.URLDecoder.decode(String  变量,String  编码);对指定变量解码

三、示例

前台:

var yhdh = encodeURI(yhdh);
top.Dialog.open({
URL : "user.do?ywtype=loadXq&type=update&user.yhdh=" +encodeURI(yhdh),   //两次使用encodeURI()函数(这是js函数)

后台:

try {
    String searchtext =java.net.URLDecoder.decode(userForm.getUser().getYhdh(),"UTF-8");  //进行解码,会抛异常,直接捕获即可。
    userBean.setYhdh(searchtext);
} catch (UnsupportedEncodingException e) {
  e.printStackTrace();
}

原文地址:https://www.cnblogs.com/lizm166/p/10209151.html

时间: 2024-08-08 05:38:40

JS传值中文乱码解决方案的相关文章

Springmvc中@RequestParam传值中文乱码解决方案

首先jsp表单里面有一些参数要传到controller中,通过以下方法接收: Java代码   @RequestMapping(value="/orderPaper") public ModelAndView orderPaper( @RequestParam("paperName")String paperName, @RequestParam("openStartTime")String openStartTime, @RequestPara

Springmvc中@RequestParam传值中文乱码解决方案(转)

@RequestMapping(value={"/list"},method=RequestMethod.GET) @ResponseBody public DeviceList getdevicelist(HttpServletRequest request, HttpServletResponse response) { String m_unit=request.getParameter("khnuit"); m_unit=EncodingTool.encod

js url传值中文乱码之解决之道

因为js url在传值的过程中使用的是js自己默认的字符集编码规则,我们必须把它转成属于我们自己的编码规格 在websphere 中使用的是url=encodeURI(encodeURI(url)); //用了2次encodeURI 测试成功,第一次转换没有尝试, 处理方法一. js 程序代码:url=encodeURI(url);注意是整个URL 服务器端的代码:String linename = new String(request.getParameter("name").get

jquery之ajax中文乱码解决方案

$.ajax({ dataType : 'json',type : 'POST',url : 'http://localhost/test/test.do',data : {id: 1, type: '商品'},success : function(data){ } } ); 问题: 提交后后台action程序时,取到的type是乱码 解决方法: 方法一:提交前采用encodeURI两次编码,记住一定是两次 1.修改以下代码 data:{id:1, type:encodeURI(encodeUR

客户端cmd打开mysql,执行插入中文报错或插入中文乱码解决方案

最近在制作一个安装包,需要安装的时候执行mysql脚本儿,做了一个批处理,但是发现总是执行到 插入中文的时候报错,或者插入中文是乱码. 网上查了好多资料,说是把编码改成GBK什么的,终究还是不成功. 最后经过多次测试,现把解决方案分享给大家. 第一步:打开mysql中的配置文件,my.ini,看一看配置文件中 [mysql] default-character-set=utf8 [mysqld] character-set-server=utf8 看是不是这样配置的.因为utf8 是国际通用的,

PHP函数imagefttext( )因--enable-gd-jis-conv引发中文乱码解决方案

阐述 最近几天与公司的PHP开发人员测试即将上线的WEB站点(致难忘的青春岁月:http://hd.gfan.com),在内网测试环境没有任何问题,但在线上测试时,发现通过PHP的GD函数 imagefttext()引用FreeType字体将文本信息写入图像时,出现中文乱码:对此问题,我们在整个排查过程中,总结了三个能引起中文乱码的原因,如下: 1.Linux系统字符集是否支持中文? [email protected]:~#locale LANG=en_US.UTF-8 LANGUAGE=en_

JS调用中文乱码怎么办

JS调用中文乱码怎么办? 网络上有很多的实用的小插件,这些小插件可以直接拿过来实用即可,但是在使用的时候会出现很多的问题,就比如与说今天要讲的乱码中文乱码的问题,这个主要是因为我们调用的js和我们写的程序使用的编码不同,那么如何进行设置呢,本次经验就来教大家. 方法/步骤 首先查看你的程序页面的编码是什么字符编码的,如:gb2312还是utf-8类型的. 这个你写的程序不会不知道.   找到你下载的js文件,右击——选择打开方式——记事本. 注意,不要把默认设置成记事本,只是用记事本打开.  

boost::xml——基本操作以及中文乱码解决方案

下面是本人使用boost库的xml部分的基础操作,并且解决对于大家使用boost库读写中文xml内容出现的乱码问题. 1.实现boost库xml基本操作2.解决boost对xml中中文乱码问题3.实现普通字符串和宽字符串的傻瓜切换(模仿tchar.h)4.代码运行环境为VS2010,需要导入boost库才能正常运行5.VS2010运行时可能会发生错误.例如:cl.exe 或者 cvtres.exe 报错. 解决办法就是重新打开项目或者切换其它正常项目运行一下(反正我是这么解决的) 下面是源码部分

页面传参中文乱码解决方案

jsp页面传递参数到servlet,只要参数有中文就是乱码,大多数是??????乱码,尝试了网上比较普遍的好多种办法都不行,最后加了一句话解决掉,分享给大家. 1.打开tomcat安装目录 2.找到conf文件夹 3.打开里面的server.xml 4.找到 <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443