WebRequest调用数据和解决繁体网站数据的乱码_C/C++语言_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

WebRequest调用数据和解决繁体网站数据的乱码

作者:黑客防线网安C/C++教程基地 来源:黑客防线网安C/C++教程基地 浏览次数:0

本篇关键词:数据网站繁体解决
黑客防线网安网讯:   最经接触了一个项目,要用C#来做,但是他原有的网站是PHP做的,数据库使用的是MySql,也不能让我们直接去操作他们的数据库,就这样,提供了一套PHP API给我们,以前到是没有接触过,网...

   最经接触了一个项目要用C#来做但是他原有的网站是PHP做的,数据库使用的是MySql,也不能让我们直接去操作他们的数据库,就这样,提供了一套PHP API给我们,以前到是没有接触过,网上查了很多资料,才慢慢稍微有点弄懂了,但是还不是那么的清晰

  他们的PHP API其实就是一些url地址和一些参数,使用那些,会返回一些字符串网上查资料,知道了会使用到XMLHTTP这种方式来使用,但是很多也是使用js来调用,虽然不难,但是比起在在CS中写C#代码来的话,就没那么方便(个人的想法)。最后找到了在代码中调用com组建,直接在CS文件中编写,确实也实现了,但是产生了乱码,网上有说原因,具体原理还太明白,只知道是编码格式的问题,可是怎么也弄,也不能正确显示,倒是有有方法能实现,但是用VBScrpt写的一个函数。
  最后方法了原来.NET中有WebRequest这个类,功能是一样的,且用起来很方便,实验了下,还是乱码,最后把编码格式改成了Big5,正确了,呵呵。最后把代码贴在下面。

#region 封裝調用API的函數
/// <summary>
/// 根據php api返回返回的字符串
/// </summary>
/// <param name="url">調用的api url</param>
/// <returns>返回需要的數據字符串</returns>
public static string GetDataWithUrl(string url)
{
string respstr;
WebRequest myWebRequest = WebRequest.Create(url);
WebResponse myWebResponse = myWebRequest.GetResponse();
Stream stream = myWebResponse.GetResponseStream();
Encoding encoder = Encoding.GetEncoding(ConfigurationManager.AppSettings["FontEncoding"]);//讀配置文件,編寫編碼格式
StreamReader sr = new StreamReader(stream, encoder);
//以字符串形式读取数据流
respstr = sr.ReadToEnd();

sr.Close();

return respstr;
}
#endregion
  调用的编码格式那里,我使用了配置文件,其实就是"Big5",红色部分就是转换编码格式,需要使用到StreamReader其中一个带编码格式的重载,如果数据是其他格式,做相应的修改就可以了。
  就这么几句简单的代码,搞定,比起用MSXML2这种方式好用多了,也不用去操作js,乱码问题也得以简单的解决,研究这个乱码花了我2个下午的时间,当然这里只是用于Get方法,POST的方法略有不同,还有,这方便会具体在研究一下。

    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-15216-1.html
网站维护教程更新时间:2012-04-04 22:51:40  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer