我会为你详细讲解"js url传值中文乱码之解决之道"的完整攻略。
在URL传值的过程中,中文数据因为编码问题可能会引起乱码。解决方法是采用UTF-8编码,使用encodeURIComponent()函数进行编码,使用decodeURIComponent()函数进行解码。
代码示例1:
//编码(传值时)
var name = "张三";
var url = "example.com?name=" + encodeURIComponent(name);
//解码(接值时)
var getName = decodeURIComponent(getUrlParam("name"));
代码示例2:
采用JQuery Ajax进行提交,设置contentType为application/json;charset=utf-8格式。
$.ajax({
type: "POST",
contentType: "application/json;charset=utf-8",
url: url,
data: JSON.stringify(data),
dataType: "json",
success: function () {
//请求成功回调函数
},
error: function () {
//请求失败回调函数
}
});
还有一种情况是,后台取中文参数时有时会乱码,这时候我们可以使用String类的getBytes()方法对参数进行编码,采用new String(byte[], charset)方法进行解码。
代码示例3:
/**
* 编码
* @param str 需要编码的字符串
* @param charset 字符编码
* @return 返回编码后的字节数组
*/
public static byte[] encode(String str, String charset) throws Exception {
if (str != null) {
return str.getBytes(charset);
} else {
return new byte[0];
}
}
/**
* 解码
* @param bytes 需要解码的字节数组
* @param charset 字符编码
* @return 返回解码后的字符串
*/
public static String decode(byte[] bytes, String charset) throws Exception {
return new String(bytes, charset);
}
以上就是"js url传值中文乱码之解决之道"的详细攻略,希望可以帮助到你。
本文链接:http://task.lmcjl.com/news/10940.html