asp ajax post 提交乱码问题

asp ajax post 提交乱码问题,第1张

主要有2个原因

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)

}

})


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9850082.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存