关于获取网页源码 编码问题

kun_kun_zheng 2012-05-21 03:50:36
获取源码的连接:http://www.sect.com.cn:7001/queryforwgq4/search/comm/contgoods_detail.jsp?0=WHLU2412918&1=12-04-20 16:29&2=04-26 00:37&3=出口重箱进场&4=装船出场&5=Y&6=20英尺&7=GP/干货箱&8=8英尺6英寸&9=出口重箱&10=WHL/万海航运香港股份有限公司&11=WHLX632847&12=null&13=null&14=WAN HAI 203/长春&15=S330&16=null&17=null&18=null&19=null&20=null&21=null&22=null&23=null&24=null&25=null&26=null&27=WE054E40381120001000&28=14000&29=SHA/上海&30=KEE/基隆&31=KEE/基隆&32=null&33=null&34=null&


public static string GetHtml(string url, Encoding encoding)
{
HttpWebResponse response = null;
Stream dataStream = null;
StreamReader reader = null;

try
{
WebRequest request = WebRequest.Create(url);
request.Credentials = CredentialCache.DefaultCredentials;
request.Timeout = 300000;

response = (HttpWebResponse)request.GetResponse();

dataStream = response.GetResponseStream();
reader = new StreamReader(dataStream, encoding);
return reader.ReadToEnd();
}
catch (Exception ex)
{
WriteLog(ex);
return "";
}
}

使用上面这个方法获取网页的源码,出现中文乱码,但不是所有的中文都是乱码,只是部分出现乱码,如:
<table width="90%" border="0" cellspacing="1" cellpadding="1" class="font" align="center">
<tr bgcolor="#CADBFF">
<td bgcolor="#CADBFF" width="15%" align="right" height="25">箱号:</td>
<td width="35%" bgcolor="#ACBEFF">
WHLU2412918
</td>
<td width="15%" bgcolor="#CADBFF" align="right">尺寸:</td>
<td width="35%" bgcolor="#ACBEFF">
20?卞昂
</td>
</tr>
<tr bgcolor="#E6EDFD" >
<td bgcolor="#CADBFF" width="15%" align="right" height="25">箱型:</td>
<td width="35%" >

</td>
<td width="15%" bgcolor="#CADBFF" align="right" >高度:</td>
<td width="35%" >
8?卞昂6?卞?
</td>
</tr>
<tr bgcolor="#ACBEFF" >
<td bgcolor="#CADBFF" width="15%" align="right" height="25" >状态:</td>
<td width="35%" bgcolor="#ACBEFF" >
?哄????
</td>

我试过好几种获取源码的方法,都不能解决这个问题?请问如何解决这个问题呢?
...全文
107 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
kunkun0921 2012-05-22
  • 打赏
  • 举报
回复
应该是URL编码的问题

public static string GetUrlEncoding(string url, Encoding encode)
{
Uri uri = new Uri(url);
string queryString = uri.Query;
System.Collections.Specialized.NameValueCollection col = System.Web.HttpUtility.ParseQueryString(queryString);
for (int i = 0; i < col.Count; i++)
{
if (String.IsNullOrEmpty(col[i]) == false)
url = url.Replace(col[i], System.Web.HttpUtility.UrlEncode(col[i], encode));
}

return url;
}

kunkun0921 2012-05-21
  • 打赏
  • 举报
回复
请问,这个转码是什么意思,我是直接用那个连接去过去源码。
熙风 2012-05-21
  • 打赏
  • 举报
回复
转码是否正确?
kun_kun_zheng 2012-05-21
  • 打赏
  • 举报
回复
我这边是需要抓取网页上的有关信息,抓取之后需要放在别处显示的。
dinghaohong81 2012-05-21
  • 打赏
  • 举报
回复
//////////////////////////////////
其实前端代码没有必要写程序来获得.,
你只需要打开网址----查看-----源代码--

111,126

社区成员

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

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

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