Mah*_*der 3 c# encoding webclient
我使用下面的代码片段将HTTP响应下载到本地文件.有时,我在url中的内容是多语言的(中文,日文,泰文数据等).我使用ContentEncoding标头指定我的内容是UTF-8编码,但这对我的本地输出文件没有影响,该文件是用ASCII生成的.因此,多语言数据已损坏.有帮助吗?
using (var webClient = new WebClient())
{
webClient.Credentials = CredentialCache.DefaultCredentials;
webClient.Headers.Add(HttpRequestHeader.UserAgent, "Mozilla/4.0");
webClient.Headers.Add(HttpRequestHeader.ContentEncoding, "utf-8");
webClient.DownloadFile(url, @"c:\temp\tempfile.htm");
}
Run Code Online (Sandbox Code Playgroud)
所述ContentEncoding标头不用于指定的字符集.客户端使用它来说明它支持哪种编码(压缩).
客户端无法告诉服务器要发送的字符集.服务器发送其数据和一些标题字段,说明正在使用的字符集.通常它位于ContentType标题中,看起来像:text/html; charset=UTF-8.
在使用时WebClient,您希望将Encoding属性设置为后备,以便在服务器不识别字符集时使用默认值.例如:
WebClient client = new WebClient();
client.Encoding = Encoding.UTF8;
string s = client.DownloadString(DownloadUrl);
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅http://www.informit.com/guides/content.aspx?g=dotnet&seqNum=800.
| 归档时间: |
|
| 查看次数: |
7300 次 |
| 最近记录: |