JS中文转换(UTF-8),中文乱码解决办法,url传递中文乱码解决

js合成url时,如果参数是中文,传到struts2中会乱码,解决办法如下:
1.js文件中使用encodeURI()方法(必须套两层)。
login_name = encodeURI(encodeURI(login_name));  

2.action中URLDecoder解码
loginName = java.net.URLDecoder.decode(loginName,"UTF-8");
-------------------------------------------------------------------------------------

实际应用如下queryPrice()方法:

1)js代码:
/*模糊查询价格策略*/
function queryPrice()
{
	var checkMoney = true;
	var textMoney = $("#textMoney");
	
	var textArea = $("#textArea");//地区错误提示位置
	
	/**
	 * 点击查询,判断至少选择了一个面值,否则不能查询
	 */
	var obj = document.getElementsByName("money");
	for( var i=0; i选择地区!");
		textMoney.html("
至少选择一种面值!"); } }

 

 

2)jsp页面
	
查询操作
地区:
          

 

 

3)struts2的Action中getter方法这样设置:
private String Area_b_text;//第二个select中的text
public void setArea_b(String areaB) {
	
	Area_b = areaB;
}
public String getArea_b_text() throws UnsupportedEncodingException {
	
	return java.net.URLDecoder.decode(Area_b_text,"UTF-8");//前台获得时自动转为UTF-8编码格式
}

 

=====================================================================================

###其他资料

url传递中文
如果jsp页面,myeclipse、web.xml中org.springframework.web.filter.CharacterEncodingFilter,都是UTF-8编码,
直接传中文一般是不会乱码的,如果再有乱码,可以用以下的方式试试。
目前收集到4中方法,中文传参一documentPath为例:
1.改为form方式提交,不用超链接方式提交,用form方式传参指定不乱码。

2.通过encodeURI(encodeURI(checkText))提交,java代码中用URLDecoder.decode解码:

java代码中取中文:
String documentPath = (String) request.getParameter('documentPath');
documentPath = URLDecoder.decode(documentPath,"utf-8");

3.修改tomcat的server.xml中的connector,添加URLEncoding="UTF-8"

4.中文从java中传到jsp再通过url传到java:
java中编码:URLEncoder.encode(URLEncoder.encode("传递的中文","utf-8"));
java中解码码:URLDecoder.decode(request.getParameter('documentPath'),"utf-8");

 

 

你可能感兴趣的:(javaScript,其他,经验+注意)