网银在线支付接口的返回值的编码转换

   今天调试了一下网银在线的接口,结果发现返回值中的汉字(如支付银行、支付状态)全是乱码,想来是编码问题,打客服电话,居然是技术不上班,所谓7*24小时的服务,就是7*24小时有客服接电话(接电话有什么用,啥问题都解决不了),郁闷啊。

 

   还是GOOGLE是最好的老师,搜了一下,发现有人说返回的是GB2312的码,有人说是GBK的。那就只好都试试了,事实证明是GBK的。

   于是写了段代码,对网银在线POST过来的支付结果数据进行处理:

 

 

        StreamReader sr = new StreamReader(Request.InputStream, Encoding.GetEncoding(936));
        string query = sr.ReadToEnd();
        System.Collections.Specialized.NameValueCollection reqResult = HttpUtility.ParseQueryString(query, Encoding.GetEncoding(936));

        v_pstring = reqResult["v_pstring"];
        v_pmode = reqResult["v_pmode"];

 

posted @ 2010-06-16 18:48  阳光.创新  阅读(717)  评论(0编辑  收藏  举报