IIS6. 0 服务器接收到没有编码的中文后好像自动编码了。然后我在用UTF-8解码之后有部分解码不了。例如向服务器发送了: "校医院", 服务器接收到的是: "鏍″尰闄? ,通过utf-8 解码之后 : "校医�? 。
应该还是编码不统一的问题,确认发送和接受都使用同样的编码格式
编码分为两部:
1.本身的文字编码;如:utf等
2.传输协议;如:url encode,html encode;
按标准处理是不可能出问题的,自己好好分析想想。
这类问题回答太多次,仍然没找到答案,有兴趣去翻我记录。
双方可以使用gb2312来解决。
我自己测试了下,先用utf-8编码之后再用gb2312解码就会出现这个情况,现在是别人用utf-8编码了我不能修改。我自己在程序中设置了utf-8解码,但是好像在接收到中文系统就默认用gb2312解码了。不知道什么原因。
@享在江湖: 贴代码吧。
@盟怀部孩: Request.ContentEncoding = Encoding.GetEncoding("utf-8");
Response.ContentEncoding = Encoding.GetEncoding("utf-8");
string str = Request.Headers.GetValues("m-sign")[0];
str 接收到的就是: "鏍″尰闄?
byte[] breult = System.Text.Encoding.Default.GetBytes(str);
result = Encoding.UTF8.GetString(breult);
解码之后result是: 校医�?
@享在江湖: 还得看对方的的发送时字符串处理方式