我创建一个WebService,在服务器端返回一个Dataset.GetXML()生成的XML字符串,客户端要将该字符串读取,重新生成DataSet,但是读取的时候遇见中文字符,程序就不能正常读取。
查询过资料后发现DataSet.GetXML()生成的XML是UTF-8的,而客户端本地读取只能支持GB2313类型的。
请问我如何读取XML?
查询过资料后发现DataSet.GetXML()生成的XML是UTF-8的,而客户端本地读取只能支持GB2313类型的。
请问我如何读取XML?
<?xml version="1.0" encoding="utf-8" ?>
//批量数据转换
//其实就是将dataset的内容读出到xml文件,然后再输出
public DataSet ISO8859_GB2312(DataSet ds)
{
string xml;
xml = ds.GetXml();
ds.Clear();
//声明字符集
System.Text.Encoding iso8859,gb2312;
//iso8859
iso8859 = System.Text.Encoding.GetEncoding("iso8859-1");
//国标2312
gb2312 = System.Text.Encoding.GetEncoding("gb2312");
byte[] bt;
bt = iso8859.GetBytes(xml);
xml = gb2312.GetString(bt);
ds.ReadXml(new System.IO.StringReader(xml));
return ds;
}
我试过了,发现只要encoding="utf-8" ,dataset就无法将它认成gb2313