jquery使用ajax传内容到asp.net乱码解决


======================================================
注:本文源代码点此下载
======================================================

jquery强大的功能越来越收到广大朋友的喜爱,不过ajax方面就有点太不照顾中国人民的感情了

数据传递编码仅支持utf-8,这个虽然是全球统一编码,但是也要考虑一下中国人名本地网站的编码问题吧

而且在jquery的发送端,无论你设置了程序级编码还是页面级编码,jquery都会使用utf-8的编码方式传递过去

有些网站都运营好长事件了,完全修改utf-8确实有点困难,好了牢骚就发到这里,下面是自己写的一个解决例子

希望能对大家有一些帮助。

原理:

在ajax发送端使用escape方法。然后在接收端(显示)使用 unescape方法转换

jquery的ajax传递参数都是转换成utf-8编码的,所以有发送前加上url编码函数escape(),之后asp.net接收处理为server.urldecode(request[参数])

例子如下:

@ page language="c#" autoeventwireup="true" codebehind="test.aspx.cs" inherits="dyj.stocksms.test" %>

doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">

html xmlns="http://www.w3.org/1999/xhtml" >

head runat="server">

title>无标题页title>

script type="text/javascript" src="jq.js">script>

script>

function hq() {

$.post("test.aspx", { "stock": escape("www结合中文测试123") }, function(data) {

$("#show").html(unescape(data));//这里unescape一下就可以了

}

);

}

script>

head>

body>

form id="form1" runat="server">

div>

input type=button value="测试" οnclick="hq();" runat="server" />

div>

span id="show">span>

form>

body>

html>

后台代码:

protected void page_load(object sender, eventargs e)

{

if (request["stock"] != null)

{

response.expires = -1;

response.write(server.urldecode(request["stock"]));

response.end();

}

}


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值