镜涛的家 JT
A NEW LIFE WITH YOU !
博客园
社区
首页
新随笔
联系
管理
订阅
随笔- 41 文章- 1 评论- 508
解决Ajax中文乱码问题
网上有很多解决这个问题的方法,试了一下都不好用,自己就对于这些方法测试了一下,然后逐个排除无用的设置,最后得到了最简单的方案。
放在首页是因为个人觉得网上许多方案巨麻烦,而且不好用。只是一个小经验,大家分享,用不了多少时间就可以看完,免得以后要解决这个问题时从网上找浪费大家宝贵的时间。
js代码:
得到XmlHttpRequest的类
Code
1
function HttpRequest()
2
{
3
//
取得Request对象
4
this
.Request
=
function()
{
5
try
6
{
7
if
(window.XMLHttpRequest) request
=
new
XMLHttpRequest();
8
if
(
!
request)request
=
new
ActiveXObject(
"
Microsoft.XMLHTTP
"
);
9
if
(
!
request)request
=
new
ActiveXObject(
"
Msxml2.XMLHTTP
"
);
10
return
request;
11
}
12
catch
(e)
13
{
14
alert(
"
不支持XMLHTTPRequest
"
);
15
}
}
16
}
调用过程:
Code
1
<%
@ Page Language
=
"
C#
"
AutoEventWireup
=
"
true
"
CodeBehind
=
"
Default.aspx.cs
"
Inherits
=
"
AjaxTest._Default
"
%>
2
3
<!
DOCTYPE html PUBLIC
"
-//W3C//DTD XHTML 1.0 Transitional//EN
"
"
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
"
>
4
<
html xmlns
=
"
http://www.w3.org/1999/xhtml
"
>
5
<
head runat
=
"
server
"
>
6
<
title
>
Untitled Page
</
title
>
7
8
<
script language
=
"
javascript
"
type
=
"
text/javascript
"
src
=
"
User.Base.js
"
></
script
>
9
10
<
script language
=
"
javascript
"
type
=
"
text/javascript
"
>
11
function Check()
12
{
13
var request
=
new
HttpRequest().Request();
14
request.onreadystatechange
=
function ()
{
15
if
(request.readyState
==
4
)
16
{
17
if
(request.status
==
200
)
18
{
19
alert(request.responseText);
20
}
21
else
22
{
23
alert(request.responseText);
24
}
25
}
26
}
27
var value
=
document.getElementById(
"
val
"
).value;
28
request.open(
"
POST
"
,
"
Default.aspx?Value=
"
+
value,
true
);
29
//
设置防止乱码的方法,只要一句话就行
30
request.setRequestHeader(
"
Content-Type
"
,
"
text/html;charset=gb2312
"
);
31
request.send(
null
);
32
}
33
</
script
>
34
35
</
head
>
36
<
body
>
37
<
form id
=
"
form1
"
runat
=
"
server
"
>
38
<
div
>
39
<
input id
=
"
val
"
type
=
"
text
"
onblur
=
"
Check()
"
/>
40
</
div
>
41
</
form
>
42
</
body
>
43
</
html
>
44
后台取得输入值:
protected
void
Page_Load(
object
sender, EventArgs e)
{
string
value
=
Request[
"
Value
"
];
}
测试过,可以得到正确的输入字符。
Tag标签:
ajax
,
乱码
,
Content-Type
,
gb2312
posted @ 2008-04-22 03:57
镜涛
阅读(2466)
评论(15)
编辑
收藏
网摘
所属分类:
.NET
AJAX
发表评论
1166169
回复
引用
查看
#1楼
2008-04-22 08:07 |
李战
http://www.cnblogs.com/Emoticons/yoyocici/223852199.gif" alt="" />路过,学习!
回复
引用
查看
#2楼
2008-04-22 08:18 |
E-freer
呵呵,更简单的就是,直接 config 中设置 utf-8就可以,其他一点也不影响!
回复
引用
查看
#3楼
2008-04-22 08:36 |
Q.Lee.lulu
路过
学习
回复
引用
查看
#4楼
2008-04-22 08:50 |
冰泉
escape(str)
这个就可以解决了
回复
引用
查看
#5楼
2008-04-22 09:00 |
爱在戏院前
escape比较和谐
回复
引用
查看
#6楼
2008-04-22 09:16 |
北漂浪子
试了,我机器上怎么不好用,中文依然是乱码!
输入“美国”,
< form name="form1" method="post" action="AjaxTest.aspx?Value=%ufffd%ufffd%ufffd%ufffd" id="form1" >
Value=%ufffd%ufffd%ufffd%ufffd
回复
引用
查看
#7楼
2008-04-22 09:31 |
二嘎
这个问题我也遇到过,我觉得每个人要跟据不同情况解决,就像大家都出现了中文乱码,但是同一种方法并一定对每个人都适用~
我也是试过了多有方法都不还用,最后通过修改webconfig解决了问题。
回复
引用
查看
#8楼
[
楼主
]2008-04-22 09:50 |
镜涛
@E-freer
这个我测试的时候没用过,呵呵。谢了,又多了种方法!
回复
引用
查看
#9楼
[
楼主
]2008-04-22 10:00 |
镜涛
@北漂浪子
我的js文件都保存为UTF-8编码了,再就是可能是我们机器环境不同吧,呵呵,
--引用--------------------------------------------------
二嘎: 这个问题我也遇到过,我觉得每个人要跟据不同情况解决,就像大家都出现了中文乱码,但是同一种方法并一定对每个人都适用~
我也是试过了多有方法都不还用,最后通过修改webconfig解决了问题。
--------------------------------------------------------
还可以通过
--引用--------------------------------------------------
冰泉: escape(str)
这个就可以解决了
--------------------------------------------------------
再就是在每个aspx页中用content-type="text/html;charset=utf-8"标识
aspx.cs页中Request和response 都指定content-type和encoding
回复
引用
查看
#10楼
[
楼主
]2008-04-22 10:01 |
镜涛
@二嘎
恩,每个人的机器环境不一样,一种解决方法可能不会对所有问题适用。
回复
引用
查看
#11楼
2008-04-22 10:11 |
留恋星空
搜藏一个先
回复
引用
#12楼
2008-04-22 10:30 |
twala[未注册用户]
http://hi.baidu.com/erik168/blog/item/1773a854f84efe5cd1090631.html
回复
引用
查看
#13楼
2008-04-22 11:48 |
S.Sams
加入编码自动识别就好啦.
回复
引用
查看
#14楼
2008-04-22 16:27 |
簡簡單單..
Mark
回复
引用
查看
#15楼
2008-04-22 20:19 |
蜗牛身上的一只蚂蚁
@E-freer
能否贴一小些代码。感谢。。。
刷新评论列表
刷新页面
返回页首
发表评论
昵称:
[登录]
[注册]
主页:
邮箱:
(仅博主可见)
验证码:
看不清,换一个
评论内容:
登录
注册
[使用Ctrl+Enter键快速提交评论]
0
1164842
链接:
切换模板
导航:
网站首页
社区
新闻
博问
闪存
网摘
招聘
找找看
Google搜索
China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
China-Pub 计算机绝版图书按需印刷服务
相关文章:
最新IT新闻:
Twitter无处不在 魔兽世界Twitter发送器插件发布
Firefox 3.5匆忙推出漏洞多 Mozilla本月将更新
预测:Twitter最可能收购的十家公司
网易澄清:与暴雪合资公司仅提供技术支持
杰克逊悼念仪式或成史上最大规模Web活动
相关链接:
公告
博客所有文章为原创文章,转载请注明出处!
All CopyRight Reserved! QQ:307073463 Email:jingtaodeemail@qq.com MSN:sunjingtao@live.com
我的最新闪存
冬眠充电中.......
与我联系
发短消息
搜索
留言簿
给我留言
查看留言
我参加的小组
.NET 新手小组
设计模式
web标准设计
Ubuntu
WinForms
读书(Books)
AJAX
Visual Studio
SAP
书籍推荐
我参与的团队
.NET 控件与组件开发(0/0)
开源项目团队(0/0)
WCF技术研究团队(0/0)
asp.net开发团队(0/0)
框架设计团队(0/0)
随笔分类
(56)
.NET(15)
(rss)
AJAX(7)
(rss)
C++
(rss)
Game (1)
(rss)
Java(4)
(rss)
XML与XSLT(5)
(rss)
读书笔记(3)
(rss)
日常生活(9)
(rss)
数据结构与算法(1)
(rss)
项目开发(6)
(rss)
重构与模式(5)
(rss)
相册
ME
我的好友
冬冬
(rss)
IT的老大,我们的biang
小刚
(rss)
天天一起的哥们
最新随笔
1. Resin2.1与 IIS 整合
2. 修饰符
3. 类型比较
4. 求职:.NET开发
5. 客户端表单验证js
6. 举国默哀三天
7. javascript继承的原理
8. Ajax-Request
9. “做”的“累”
10. Html元素动态添加方法
积分与排名
积分 - 84157
排名 - 713
最新评论
1. re: 神界危机3.4通关方略
我杀了那老人 怎么什么都没暴啊???????? (hhhfff)
2. re: 神界危机3.4通关方略
我杀了那个老人 怎么什么都没暴啊 昏哦 (ggggg)
3. re: 神界危机3.4通关方略
是一个人杀的,但是到最后一个怪他怎么老是复活呀
(大苏打)
4. re: 修饰符
貌似没有提到protected internal,这个修饰符的用法值得验证一下。 (Anders Liu)
5. re: 修饰符
“注意:当一个类或方法没有被任何修饰符修饰时,默认为internal”——这一句理解有误。类的默认修饰符是internal,但类成员的默认修饰符是private,不管是不是方法。 (肖弘)
阅读排行榜
1. 神界危机3.4通关方略(7692)
2. 分享书籍(2726)
3. 知识的殿堂??!(2544)
4. 解决Ajax中文乱码问题(2466)
5. 分享,讨论Programming的习惯(2404)
评论排行榜
1. 分享书籍(162)
2. 知识的殿堂??!(57)
3. 分享,讨论Programming的习惯(32)
4. 书籍下载链接(25)
5. 扯淡设计模式之单件模式(23)