问题描述
usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Net;usingSystem.IO;namespacethief{classProgram{staticvoidMain(string[]args){try{WebClientMyWebClient=newWebClient();MyWebClient.Credentials=CredentialCache.DefaultCredentials;//获取或设置用于对向Internet资源的请求进行身份验证的网络凭据。Byte[]pageData=MyWebClient.DownloadData("http://www.163.com");//从指定网站下载数据stringpageHtml=Encoding.Default.GetString(pageData);//如果获取网站页面采用的是GB2312,则使用这句//stringpageHtml=Encoding.UTF8.GetString(pageData);//如果获取网站页面采用的是UTF-8,则使用这句Console.WriteLine(pageHtml);//在控制台输入获取的内容using(StreamWritersw=newStreamWriter("e:\test\ouput.html"))//将获取的内容写入文本{sw.Write(pageHtml);}Console.ReadLine();//让控制台暂停,否则一闪而过了}catch(WebExceptionwebEx){Console.WriteLine(webEx.Message.ToString());}}}}这段代码可以读取网上的网页,但是输出的中文全是乱码,如何修正?
解决方案
解决方案二:
WebClientMyWebClient=newWebClient();后面加一样行MyWebClient.Encoding=Encoding.Default;//orotherencodingtype试试看。即发送请求时,预先制定编码方式。
解决方案三:
Encoding是不是该设置成UTF-8???
解决方案四:
Byte[]pageData=MyWebClient.DownloadData("http://www.163.com");//从指定网站下载数据WebClient编码为UTF-8码,想得到的编码个是要在请求的页面文件上做一限制,如“http://www.163.com“同级的文件夹目录或上一级的Web.ConfigWeb配置文件上加上<globalizationfileEncoding="gb2312"requestEncoding="gb2312"responseEncoding="gb2312"/>才能得到你想要得编码串
解决方案五:
我用你的代码试了,没作任何改动,输出的文件没有发现任何乱码
解决方案六:
sw的编码没设