
1 xtmlhttp 返回的数据默认的字符编码是utf-8,如果前台页面是gb2312或者其它编码数据就会产生乱码
2 post方法提交数据默认的字符编码是utf-8,如果后台是gb2312或其他编码数据就会产生乱码
解决方法
进一步整理中
推荐方法,前台后台都用utf-8编码,这样可以省不少麻烦,从根本上解决了乱码问题.优点是效率高,而且符合目前的形式,utf-8编码本身就是一种比较优秀的编码,没有语言限制.缺点只能调用自己的后台编码或者其他的utf-8的编码.
前台更改为
<meta http-equiv=”Content-Type” content=”text/htmlcharset=utf-8″>
后台asp中第一行加入如下代码
<%@LANGUAGE=”JAVASCRIPT” CODEPAGE=”65001″%>
<% Response.Charset=”utf-8″%>
<% Session.CodePage=65001%>
后台如果有html代码也需保证
<meta http-equiv=”Content-Type” content=”text/htmlcharset=utf-8″>
补救的方法是进行编码转换.可以在客户端也可以在服务器端进行编码转换.优点是没有任何限制,缺点效率低.
补充
如果是老系统升级ajax,如果系统是gb2312的话,也无需大修改
新建立一个ajax的后台页面编码是utf-8,前台可以为任意编码,后台页面负责添加数据库,可保证存入数据库后无乱码
以下为修改过的示例代码
就是它困扰了我一天时间
客户端
<% Response.Charset=”utf-8″ %>
<input type=”button” name=”btna” id=”btna”>
<input type=”text” name=”user_name” id=”user_name”>
<script src=”jquery.js”></script>
<script>
$(’#btna’).click(function(){
var user_name = $(’#user_name’).val()
$.post(’server.asp’, {’user_name’:user_name},
function( data){
},’json’
)
})
</script>
服务端:
<%@ CODEPAGE=65001 %>
<% Option Explicit %>
<% On Error Resume Next %>
<% Response.Charset=”utf-8″ %>
<% Response.Write Request(”user_name”) %>
JQuery在Ajax提交出现中文乱码的解决办法:因为编码的原因
可能存在以下几点原因:
1.HTML的编码不统一:如页面用的GB2312,好像JQuery对它支持不太好。以前我一直都是用UTF-8的,一直都没有发现;
2.文件的编码,这个不好在
表面上看到,简体中文版的 *** 作系统存的文本格式的文件默认是 GB2312,建议把文件换成UTF-8格式的
最简单的解决办法,把提交的中文文本用 JS的 escape 处理一下,就不会现出现乱码了。
如:
//保存数据
$.ajax({
url:"/guide/savecomments.aspx" ,
type:"POST" ,
dataType:"json" ,
data:"Action=SaveComment&CommNickName=" +escape
(CommNickName.val()) + "&CommContent=" +escape(CommContent.val()) + "&GuideID=" + GuideID.val() + "&ScoreLogType=<%=ScoreLogType %>",
success:function
(results){
alert(results.message)
}
})
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)