我发送的XML报文为UTF8的,但是服务器端只接收GBK的,请问怎么把UTF8转换为GBK? JS、C#语言都行。我已经试过的方法:1:更改web.config 为GBK;2:request.setRequestHeader("Content-Type","text/xml;charset=GBK"); 3:JS中的 encodeURI、escape函数。能解决的,我追加分,把我所有的分都给你都行。本人Q:928100040.加上我时候请说明用意,谢谢。
第1个回答 2012-12-01
这个问题前提是服务器端只接收gbk编码的请求,这个改不了。那么就要从客户端想办法将utf8编码的xml转成gbk编码的请求。
1、将xml当中<?xml version="1.0" encoding="UTF-8" standalone="yes"?>改为<?xml version="1.0" encoding="gb2312" standalone="yes"?>(这一点可以最后尝试,这只是我的猜想)
2、在使用HttpWebRequest发送请求时,将utf8的字符串转为gb2312格式的字节数组
System.Text.Encoding gbkEncode = System.Text.Encoding.GetEncoding("gb2312");
byte[] bytes = gbkEncode .GetBytes("要发送的xml字符串");
System.IO.Stream writer = request.GetRequestStream();
writer.Write(bytes, 0, bytes.Length);
这样应该可以,你再尝试一下吧。
1、将xml当中<?xml version="1.0" encoding="UTF-8" standalone="yes"?>改为<?xml version="1.0" encoding="gb2312" standalone="yes"?>(这一点可以最后尝试,这只是我的猜想)
2、在使用HttpWebRequest发送请求时,将utf8的字符串转为gb2312格式的字节数组
System.Text.Encoding gbkEncode = System.Text.Encoding.GetEncoding("gb2312");
byte[] bytes = gbkEncode .GetBytes("要发送的xml字符串");
System.IO.Stream writer = request.GetRequestStream();
writer.Write(bytes, 0, bytes.Length);
这样应该可以,你再尝试一下吧。
第2个回答 2012-11-28
var encoding = Encoding.GetEncoding("gbk");
var bytes = encoding.GetBytes("我是测试文本内容");
// 得到的bytes 就是gbk字符的二进制数组,你可以使用post之类的操作提交到服务器上
var bytes = encoding.GetBytes("我是测试文本内容");
// 得到的bytes 就是gbk字符的二进制数组,你可以使用post之类的操作提交到服务器上