在程序开发中,有时查询条件中有汉字, 在拼接URL到后台请求会有乱码,URL一乱码,程序就会出错。
我们也遇到了中文乱码问题
首先如果是form表单可以先把 method换成post 试试;
不行就用下面的方法
第一 在 jsp前台页面 用encodeURIComponent 编码两次,记住是两次,一次是不行的; 把汉字编码成Unicode编码格式;
第二 在后台java代码中java.net.URLDecoder.decode(要解码的字符,"编解码格式"); 通过编解码格式(这里用UTF-8),这个编解码格式对应前台的Unicode编码格式。
例子
jsp页面
var id_nm = $("#表单Id值").val();
id_nm=encodeURIComponent(encodeURIComponent(id_nm));
后台java文件
//从前台获取id_nm然后用utf-8解码 其中decode的参数1是我们系统的特有写法,
//你们要换成你们获取值的语法
String nm = java.net.URLDecoder.decode(Utils.getData(bizCtx, "$id_nm"),"UTF-8");
// 获取到nm值赋值到数据总线(这一步可去掉,直接把nm赋值给真正后面代码要用到的变量)
String nm1=Utils.getData(bizCtx, nm);
//把nm1赋值给id_nm 放到数据总线
Utils.setData(bizCtx, "id_nm", nm1);