关于URL以不同编码格式 编码解码的代码
2014-05-16 来自:棉袄 1 人回应

新浪天气API:http://php.weather.sina.com.cn/xml.php?city=%B1%B1%BE%A9&password=DJOYnieT8234jlsK&day=0
我用C#的Uri类编码北京,结果是:%E5%8C%97%E4%BA%AC
问题是新浪的是 %B1%B1%BE%A9。 纠结了,新浪的是怎么弄的?

 

我用 百度搜索的 编码 应用 才明白:

新浪使用GB2312把北京编码成:%B1%B1%BE%A9

而C#是把北京编码成:%E5%8C%97%E4%BA%AC

 

这是全部代码: getGB2312就是获取编码的

 

WebClient.Encoding = System.Text.Encoding.UTF8;
                string uri = "http://php.weather.sina.com.cn/xml.php?city=" + getGB2312(key) + "&password=DJOYnieT8234jlsK&day=0";
                string val = WebClient.DownloadString(uri);
                string text = "北京今天," + GetString(val, "<status1>", "</status1>") + ","
                     + GetString(val, "<direction1>", "</direction1>") + ",温度在" + GetString(val, "<temperature1>", "</temperature1>")
                      + "°到" + GetString(val, "<temperature2>", "</temperature2>") + "°之间.";

2014-05-22 来自:北田开花

C#是用的UTF8吧? 你改成gb2312试试

您的回应

你还未登陆,不能回应!登陆