ajax返回中文是乱码,有啥好办法吗?

woodyy 2010-02-03 05:36:51
我是用jquery来做的,用ashx页面处理的。
想了很多办法

第一种办法,在ashx上加了

HttpResponse response = context.Response;
response.Charset = "GB2312";
response.ContentEncoding = System.Text.Encoding.UTF8;

失败了。

然后又

response.Write(HttpUtility.UrlEncode("中文中文"));
response.Write(HttpContext.Current.Server.HtmlDecode("中文中文"));

也不行。

在js里

$.ajax({
type: "GET",
// contentType: "text/html",
// dataType: "html",
url: "ClientFile/Handler.ashx",
data: "word=" + $("#TextBox1").val() + "&" + new Date().toLocaleTimeString(),
success: function(msg) {
alert(escape(msg));
alert(unescape(msg)); }
});

unescape和escape都不行。

在web.config里添加

<globalization requestEncoding="gb2312" responseEncoding="gb2312" />

也不行

我今天以失败而告终了。~
...全文
324 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
sohighthesky 2010-02-04
  • 打赏
  • 举报
回复
[Quote=引用楼主 woodyy 的回复:]
HttpResponse response = context.Response;
response.Charset = "GB2312";
response.ContentEncoding = System.Text.Encoding.UTF8;
[/Quote]
见鬼,这是什么逻辑?
winner2050 2010-02-04
  • 打赏
  • 举报
回复
一开始全部默认的就很好了。

你突然改用gb2312 就得全部都改掉。


HttpResponse response = context.Response;
response.Charset = "GB2312";
response.ContentEncoding = System.Text.Encoding.UTF8;

一会gb码,一会utf-8 能不乱码??


response.Write(HttpUtility.UrlEncode("中文中文"));
response.Write(HttpContext.Current.Server.HtmlDecode("中文中文"));
<globalization requestEncoding="gb2312" responseEncoding="gb2312" />

输出utf-8,接收用gb2312 能不乱码?
feelnowt 2010-02-04
  • 打赏
  • 举报
回复
编码问题
gsz_stylm 2010-02-04
  • 打赏
  • 举报
回复
你在页面上还是指定用utf-8 的编码试一试,这样对代码不要做任何的处理,到后台再去处理
camperer 2010-02-04
  • 打赏
  • 举报
回复
<script src="...">引用的js文件那里有没有加上charset="gb2312"??
jenny0810 2010-02-04
  • 打赏
  • 举报
回复
请求和响应用同一种编码方式
Justin-Liu 2010-02-04
  • 打赏
  • 举报
回复
参考SharePoint dll的Download页面方法的编码转换
CalvinDo 2010-02-04
  • 打赏
  • 举报
回复
var url = "Help.aspx?yydb="+escape(yydb);
我的可以。。

但是我的web.config是这样配置的。。
<globalization requestEncoding="utf-8" responseEncoding="utf-8"/>
风骑士之怒 2010-02-04
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wuyq11 的回复:]
var encodeURIQueryString=escape(queryString); 

Encoding.Default.GetString(responseData)
[/Quote]
up
geass 2010-02-04
  • 打赏
  • 举报
回复
我的网站是这样解决的
<globalization requestEncoding="gb2312" responseEncoding="gb2312" uiCulture="zh-cn" culture="zh-cn" fileEncoding="gb2312" />
wuyq11 2010-02-03
  • 打赏
  • 举报
回复
var encodeURIQueryString=escape(queryString);

Encoding.Default.GetString(responseData)
人生就是赌 2010-02-03
  • 打赏
  • 举报
回复
1,页面的编码和web.config中的配置最好一致
2,编码解码确实只用相对应的

Response.Write(HttpUtility.UrlEncode("中文中文"));
Response.Write(HttpUtility.UrlDecode("中文中文"));
yanzhiyong 2010-02-03
  • 打赏
  • 举报
回复
response.Write(HttpUtility.UrlEncode("中文中文"));
response.Write(HttpContext.Current.Server.HtmlDecode("中文中文"));


加码解码用一个吧。一个URL的一个HTML的肯定是错误了。
vip__888 2010-02-03
  • 打赏
  • 举报
回复
变通下
直接中文字符不行的话
返回对应的参数 返回1对应“你的结果”
wosizy 2010-02-03
  • 打赏
  • 举报
回复
给LZ 两个连接 参考下吧!~··
http://hi.baidu.com/asong/blog/item/764b41a96e1795fe1e17a227.html

http://bbs.51js.com/viewthread.php?tid=83792

Response.Charset = "GB2312"
wosizy 2010-02-03
  • 打赏
  • 举报
回复
用ashx页面???

62,254

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧