今天在论坛看到一个问题
http://topic.youkuaiyun.com/u/20091112/20/4549b0dd-f6b5-4252-8a98-3e7d8f40ee5e.html
原来的代码如下,该页面明明是iso-8859-1编码,但是用该编码读取总是报错,用GB2312编码虽然能直接读取,但内容不正确
后来把HttpWebResponse的所有属性方法都看了一下,看到StatusCode属性时就想是不是还没准备好呢,显示状态试试
谁知道获取过StatusCode的值后就能顺利读取了,虽然解决了该贴的问题
但不知道为什么获取过StatusCode的值后就能顺利读取
有谁知道的话告诉一下,谢谢。
更改后的代码如下:
一、以上问题引用 qldsrx (青龙白虎)的答案
网络的流是抽象的,ReadToEnd的调用必须是流可以关闭的情况下才可以这么做,但是如果StatusCode 不为 HttpStatusCode.OK的话,读取流就会出错,所以你那代码也是不正确的,你获取了StatusCode后,应该比较是否为 HttpStatusCode.OK,是的话才能执行下面的过程。
二、引用 ojlovecd (天行健)的指点
在输出结果前增加一句
Console.OutputEncoding = Encoding.GetEncoding("iso-8859-1"); Console.OutputEncoding = Encoding.GetEncoding("iso-8859-1"); 控制台程序输出不了某些unicode字符,除非你把操作系统的语言区域调成要输出的编码地区 三、以上两点都可以在贴子”折腾一两天了,WebRequest乱码解决不了! “中找到。