首页 新闻 会员 周边 捐助

中文乱码,别人发过来UTF-8 编码的,我后台接收之后好像IIS 自动 默认GB2312解码了。怎么修改IIS 默认解码的方式

-1
悬赏园豆:50 [已解决问题] 解决于 2017-02-23 08:38

IIS6. 0   服务器接收到没有编码的中文后好像自动编码了。然后我在用UTF-8解码之后有部分解码不了。例如向服务器发送了: "校医院",   服务器接收到的是: "鏍″尰闄?  ,通过utf-8 解码之后 : "校医�?   。

享在江湖的主页 享在江湖 | 初学一级 | 园豆:116
提问于:2017-01-22 11:10
< >
分享
最佳答案
0

应该还是编码不统一的问题,确认发送和接受都使用同样的编码格式

收获园豆:30
tootwo2 | 小虾三级 |园豆:502 | 2017-01-22 19:50
其他回答(2)
0

编码分为两部:

1.本身的文字编码;如:utf等

2.传输协议;如:url encode,html encode;

按标准处理是不可能出问题的,自己好好分析想想。

这类问题回答太多次,仍然没找到答案,有兴趣去翻我记录。

收获园豆:10
花飘水流兮 | 园豆:13617 (专家六级) | 2017-01-25 14:27
0

双方可以使用gb2312来解决。

收获园豆:10
盟怀部孩 | 园豆:878 (小虾三级) | 2017-02-07 10:45

我自己测试了下,先用utf-8编码之后再用gb2312解码就会出现这个情况,现在是别人用utf-8编码了我不能修改。我自己在程序中设置了utf-8解码,但是好像在接收到中文系统就默认用gb2312解码了。不知道什么原因。

支持(0) 反对(0) 享在江湖 | 园豆:116 (初学一级) | 2017-02-07 11:05

@享在江湖: 贴代码吧。

支持(0) 反对(0) 盟怀部孩 | 园豆:878 (小虾三级) | 2017-02-07 11:06

@盟怀部孩:  Request.ContentEncoding = Encoding.GetEncoding("utf-8");
            Response.ContentEncoding = Encoding.GetEncoding("utf-8");
            string str = Request.Headers.GetValues("m-sign")[0];

支持(0) 反对(0) 享在江湖 | 园豆:116 (初学一级) | 2017-02-07 11:13

str 接收到的就是:  "鏍″尰闄?

byte[] breult = System.Text.Encoding.Default.GetBytes(str);
  result = Encoding.UTF8.GetString(breult);

解码之后result是:  校医�?

支持(0) 反对(0) 享在江湖 | 园豆:116 (初学一级) | 2017-02-07 11:21

@享在江湖: 还得看对方的的发送时字符串处理方式

支持(0) 反对(0) 盟怀部孩 | 园豆:878 (小虾三级) | 2017-02-07 11:31
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册