最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

真正的JQuery.ajax传递中文参数的解决方法_jquery

来源:动视网 责编:小采 时间:2020-11-27 20:59:31
文档

真正的JQuery.ajax传递中文参数的解决方法_jquery

真正的JQuery.ajax传递中文参数的解决方法_jquery:本人最近也遇到了需要传递中文参数的问题。在网上搜索一下,复制粘贴发的到处都是的终极解决方案无非就是escape(str)来转码,然后在服务端还要写个方法再编辑一次,或用System.Text.Encoding下的方法来换来换去。 我很久以前一直在使用Prototy
推荐度:
导读真正的JQuery.ajax传递中文参数的解决方法_jquery:本人最近也遇到了需要传递中文参数的问题。在网上搜索一下,复制粘贴发的到处都是的终极解决方案无非就是escape(str)来转码,然后在服务端还要写个方法再编辑一次,或用System.Text.Encoding下的方法来换来换去。 我很久以前一直在使用Prototy


本人最近也遇到了需要传递中文参数的问题。在网上搜索一下,复制粘贴发的到处都是的“终极”“解决方案”无非就是escape(str)来转码,然后在服务端还要写个方法再编辑一次,或用System.Text.Encoding下的方法来换来换去。

我很久以前一直在使用Prototype框架。在.net-GB2312或jsp-utf8下都使用过,从来没遇到有字符编码的问题。于是将Prototype和JQuery代码都下载下来打开研究原因。具体结果如下

JQuery与Prototype创建Ajax代码比较
不同之处在于JQuery默认的contentType:application/x-www-form-urlencoded
而Prototype则是contentType:application/x-www-form-urlencoded; charset=UTF-8
这才是JQuery正在乱码的原因,在未指定字符集的时候,是使用ISO-8859-1
ISO8859-1,通常叫做Latin-1。Latin-1包括了书写所有西方欧洲语言不可缺少的附加字符。
JQuery的Ajax根本没有考虑到国际化的问题,使用了欧洲的字符集,所以才引起了传递中文出现乱码的问题。
而我们的UTF-8则可以解决这一问题。
最终指需要修改JQuery的代码,显式声明contentType使用utf-8字符集,即可解决GB2312中文传递的问题。
修改如图:

修改JQuery代码
只需要简单的将JQuery的代码加以修改,加上charset=UTF-8就可以了,这样不需要改变改什么web.config或什么在页面中改编码什么的了,也不需要用escapc(str)再在服务端解码。英文怎么传递,中文也怎么传递。
给段简单的代码测试一下:
test.html:
代码如下:







function DoAjax(){
$.post("AjaxTest.aspx",{txt:$("#tbox1").val()},
function(data){
$("#AjaxResponse").text(data);
}
);
}



AjaxTest






AjaxTest.aspx:
代码如下:
<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="gb2312" %>

string parms;
void Page_Load(object sender , EventArgs e)
{
parms=Request["txt"];
if (String.IsNullOrEmpty(parms)){
Response.Write("Is Null");
}else{
Response.Write(parms);
}
}

文档

真正的JQuery.ajax传递中文参数的解决方法_jquery

真正的JQuery.ajax传递中文参数的解决方法_jquery:本人最近也遇到了需要传递中文参数的问题。在网上搜索一下,复制粘贴发的到处都是的终极解决方案无非就是escape(str)来转码,然后在服务端还要写个方法再编辑一次,或用System.Text.Encoding下的方法来换来换去。 我很久以前一直在使用Prototy
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top