关键词

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

我会为你详细讲解"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

展开阅读全文