最近使用 jQuery 遇到中文乱码问题, 其实他的中文乱码就是因为 contentType 没有指定编码, 只需在 jQuery.JS 中搜索'contentType'
然后在 application/x-www-form-urlencoded 后面加上: charset=UTF-8
最终变成:
contentType:"application/x-www-form-urlencoded; charset=UTF-8"
问题搞定.
另外, 也可在具体调用时指定
contentType:"application/x-www-form-urlencoded; charset=UTF-8" 参数, 如:
- $.Ajax({
- type: "post",
- url: "/my/login.aspx",
- data: $('#loginform').serialize(),
- dataType: "json",
- contentType:"application/x-www-form-urlencoded; charset=UTF-8",
- success: function (JSON) {
- if (JSON.statusCode == 200) {
- Windows.location.reload();
- } else {
- $("#J_logininfo").attr("class", "fail").html(JSON.message);
- }
- },
- beforeSend: function (o) {
- $("#J_logininfo").attr("class", "focus").HTML("登录中...");
- }
- });
必要说明:
使用 post 方法会出现乱码, 这是由于异步对象 XMLHttpRequest 在处理返回的 responseText 的时候, 是按 UTF-8 编码进行解码的. 所以 post 方式的话, 必须把 action.asp 页另存为时, 第三项的编码由 ANST 改为 UTF-8 (请务必记住).
jQuery 序列化 serialize() 时中文乱码
jQuery 序列化 serialize() 时中文乱码. 将 jQuery.JS 文件中的 encodeURIComponent 替换为 encodeURI. 即可解决中文乱码.
来源: http://www.css88.com/qa/jquery/15593.html