webclient的问题

xb06620422 2011-10-10 03:02:55
使用wenclient的DownloadStringAsync方法
在wc_DownloadStringCompleted中通过e.result 获取返回的string
发现中文变乱码了
...全文
49 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xb06620422 2011-10-10
  • 打赏
  • 举报
回复
已经解决谢谢 改用 DownloadDataAsync 了 用DownloadStringAsync在数据返回来的时候就已经出问题了
sunny906 2011-10-10
  • 打赏
  • 举报
回复

wc.Encoding = Encoding.GetEncoding("提取的网站编码");
  • 打赏
  • 举报
回复
设置编码

/// <summary>
/// 获取网页源代码方法四
/// </summary>
/// <param name="url">地址</param>
/// <param name="charSet">指定编码,如果为空,则自动判断</param>
/// <param name="out_str">网页源代码</param>
public static string GetHtml(string url, string charSet)
{
string strWebData = string.Empty;
try
{
WebClient myWebClient = new WebClient(); //创建WebClient实例
byte[] myDataBuffer = myWebClient.DownloadData(url);
strWebData = System.Text.Encoding.Default.GetString(myDataBuffer);
//获取网页字符编码描述信息
if (string.IsNullOrEmpty(charSet))
{
Match charSetMatch = Regex.Match(strWebData, "<meta([^>]*)charset=(\")?(.*)?\"", RegexOptions.IgnoreCase | RegexOptions.Multiline);
string webCharSet = charSetMatch.Groups[3].Value.Trim().ToLower();
if (webCharSet != "gb2312")
{
webCharSet = "utf-8";
}
if (System.Text.Encoding.GetEncoding(webCharSet) != System.Text.Encoding.Default)
{
strWebData = System.Text.Encoding.GetEncoding(webCharSet).GetString(myDataBuffer);
}
}
}
catch (Exception ex)
{
return null;
}
return strWebData;
}
  • 打赏
  • 举报
回复
那你尝试转码一下。
Encoding下方法

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧