镜涛的家 JT
A NEW LIFE WITH YOU !
博客园
社区
首页
新随笔
联系
管理
订阅
随笔- 37 文章- 1 评论- 490
解决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
镜涛
阅读(2359)
评论(15)
编辑
收藏
所属分类:
.NET
、
AJAX
发表评论
回复
引用
查看
#1楼
2008-04-22 08:07 |
李战
路过,学习!
回复
引用
查看
#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
能否贴一小些代码。感谢。。。
新用户注册
刷新评论列表
标题
姓名
主页
Email
(博主才能看到)
验证码
*
看不清,换一张
[
登录
][
注册
]
内容(请不要发表任何与政治相关的内容)
网站首页
新闻频道
社区
小组
博问
网摘
闪存
找找看
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
"五向定位"职业成长路线公开课(上海、南京、大连)
Google站内搜索
相关文章:
不可多得的Javascript(AJAX)开发工具 - Aptana
在ASP.NET中使用无框架的Ajax事例
关于IE问题,请教和求救
Ajax实现无刷新三联动下拉框
西部数据发布500GB笔记本硬盘
微软出品8GB蓝色和120GB Zune播放器
离职了 找工作,.net2年多 地点无所谓
相关链接:
所属分类的其他文章:
客户端表单验证js
利用XML配置实体列表
扯淡设计模式之单件模式
一个用WCF实现Ruby中scaffold的想法
扯淡设计模式之装饰者模式
扯淡设计模式之观察者模式
分享,讨论Programming的习惯
多态的应用
解决Ajax中文乱码问题
动态构造Lambda表达式
最新IT新闻:
微软首次打破先例 Windows 7不再改名
亚马逊EC2云计算计划支持Windows操作系统
鲍尔默失望变希望 幸亏当初未收购雅虎
微软12月举办硬件工程大会 Windows7将首次亮相
电脑程序与12位真人聊天 “艾尔博特”骗过3人
公告
QQ:307073463 Email:jingtaodeemail@qq.com MSN:sunjingtao@live.com
与我联系
发短消息
搜索
留言簿
给我留言
查看留言
我参加的小组
web标准设计
设计模式
.NET 新手小组
求职招聘小组
博客园精华集出版小组
Visual Studio
SAP
读书(Books)
WinForms
.NET 3.x
我参与的团队
.NET 控件与组件开发(0/1385)
WCF技术研究团队(0/185)
asp.net开发团队(1/237)
框架设计团队(0/45)
随笔分类
(51)
.NET(13)
(rss)
AJAX(7)
(rss)
Game (1)
(rss)
Java(1)
(rss)
XML与XSLT(5)
(rss)
读书笔记(3)
(rss)
日常生活(9)
(rss)
数据结构与算法(1)
(rss)
项目开发(6)
(rss)
重构与模式(5)
(rss)
相册
ME
我的好友
冬冬
(rss)
IT的老大,我们的biang
小刚
(rss)
天天一起的哥们
最新随笔
1. 求职:.NET开发
2. 客户端表单验证js
3. 举国默哀三天
4. javascript继承的原理
5. Ajax-Request
6. “做”的“累”
7. Html元素动态添加方法
8. 书籍下载链接
9. 分享书籍之汗
10. Div+Css登陆窗体实现
积分与排名
积分 - 74482
排名 - 575
最新评论
1. re: 求职:.NET开发
楼主设计模式书看的不少,ORM自己做过么?我感觉楼主很不错,至少比我当年毕业时厉害,我现在才在看重构,你的简历社会实践和学习经历感觉有点混乱(时间),少写点,别人知道你是刚毕业的学生所以多说说你获奖荣... (yatasoft)
2. re: 神界危机3.4通关方略
一个人可以通关吗??
我一个人最多只能打到第二关,用血魔 (糊唠嗑~!)
3. re: 求职:.NET开发
@dxq012
呵呵,想去北京、上海! (镜涛)
4. re: 求职:.NET开发
你想到哪里工作啊是北京吗 (dxq012)
5. re: 求职:.NET开发
--引用-------------------------------------------------- 赤月之下: --引用-----------------------------------... (westhot)
阅读排行榜
1. 神界危机3.4通关方略(4132)
2. 分享书籍(2604)
3. 知识的殿堂??!(2519)
4. 分享,讨论Programming的习惯(2378)
5. 解决Ajax中文乱码问题(2359)
评论排行榜
1. 分享书籍(162)
2. 知识的殿堂??!(57)
3. 分享,讨论Programming的习惯(32)
4. 书籍下载链接(24)
5. 扯淡设计模式之单件模式(23)