本文主要和大家分享AJAX之POST數據中文亂碼如何解決,前端使用encodeURI進行編碼,希望能幫助到大家。var param = encodeURI(param);
$.ajax({
url: 'url',
methodtype: "POST",
async: false,
timeout: 60000,
contentType: "application/json",
data: {'param':param},
success: function(data) {
},
error: function(data) {
}
});
后臺java.net.URLDecoder進行解碼
編解碼工具import java.io.UnsupportedEncodingException;import java.net.URLDecoder;import java.net.URLEncoder;import org.apache.commons.codec.DecoderException;import org.apache.commons.codec.binary.Base64;import org.apache.commons.codec.binary.Hex;import org.apache.commons.lang3.StringEscapeUtils;/**
* 封裝各種格式的編碼解碼工具類.
* 1.Commons-Codec的 hex/base64 編碼
* 2.自制的base62 編碼
* 3.Commons-Lang的xml/html escape
* 4.JDK提供的URLEncoder
*
*/public class Encodes {
private static final String DEFAULT_URL_ENCODING = "UTF-8"; private static final char[] BASE62 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".toCharArray(); /**
* Hex編碼.
*/
public static String encodeHex(byte[] input) { return new String(Hex.encodeHex(input));
} /**
* Hex解碼.
*/
public static byte[] decodeHex(String input) { try { return Hex.decodeHex(input.toCharArray());
} catch (DecoderException e) { throw Exceptions.unchecked(e);
}
} /**
* Base64編碼.
*/
public static String encodeBase64(byte[] input) { return new String(Base64.encodeBase64(input));
} /**
* Base64編碼.
*/
public static String encodeBase64(String input) { try { return new String(Base64.encodeBase64(input.getBytes(DEFAULT_URL_ENCODING)));
} catch (UnsupportedEncodingException e) { return "";
}
}// /**// * Base64編碼, URL安全(將Base64中的URL非法字符'+'和'/'轉為'-'和'_', 見RFC3548).// */// public static String encodeUrlSafeBase64(byte[] input) {// return Base64.encodeBase64URLSafe(input);// }
/**
* Base64解碼.
*/
public static byte[] decodeBase64(String input) { return Base64.decodeBase64(input.getBytes());
} /**
* Base64解碼.
*/
public static String decodeBase64String(String input) { try { return new String(Base64.decodeBase64(input.getBytes()), DEFAULT_URL_ENCODING);
} catch (UnsupportedEncodingException e) { return "";
}
} /**
* Base62編碼。
*/
public static String encodeBase62(byte[] input) { char[] chars = new char[input.length]; for (int i = 0; i < input.length; i++) {
chars[i] = BASE62[((input[i] & 0xFF) % BASE62.length)];
} return new String(chars);
} /**
* Html 轉碼. 例如將 < 轉成 <
*/
public static String escapeHtml(String html) { return StringEscapeUtils.escapeHtml4(html);
} /**
* Html 解碼.
*/
public static String unescapeHtml(String htmlEscaped) { return StringEscapeUtils.unescapeHtml4(htmlEscaped);
} /**
* Xml 轉碼.
*/
public static String escapeXml(String xml) { return StringEscapeUtils.escapeXml10(xml);
} /**
* Xml 解碼.
*/
public static String unescapeXml(String xmlEscaped) { return StringEscapeUtils.unescapeXml(xmlEscaped);
} /**
* URL 編碼, Encode默認為UTF-8.
*/
public static String urlEncode(String part) { try { return URLEncoder.encode(part, DEFAULT_URL_ENCODING);
} catch (UnsupportedEncodingException e) { throw Exceptions.unchecked(e);
}
} /**
* URL 解碼, Encode默認為UTF-8.
*/
public static String urlDecode(String part) { try { return URLDecoder.decode(part, DEFAULT_URL_ENCODING);
} catch (UnsupportedEncodingException e) { throw Exceptions.unchecked(e);
}
}
}
相關推薦: