C# HttpRequestHeader内容编码问题
我使用下面的代码片段将HTTP响应下载到本地文件。 有时我的url中的内容是多语言的(中文、日文、泰文数据等)。 我使用ContentEncoding头来指定我的内容采用UTF-8编码,但这对以ASCII生成的本地输出文件没有影响。因此,多语言数据被破坏。有什么帮助吗C# HttpRequestHeader内容编码问题,c#,encoding,webclient,C#,Encoding,Webclient,我使用下面的代码片段将HTTP响应下载到本地文件。 有时我的url中的内容是多语言的(中文、日文、泰文数据等)。 我使用ContentEncoding头来指定我的内容采用UTF-8编码,但这对以ASCII生成的本地输出文件没有影响。因此,多语言数据被破坏。有什么帮助吗 using (var webClient = new WebClient()) { webClient.Credentials = CredentialCache.DefaultCreden
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");
}
ContentEncoding
标题不用于指定字符集。客户端使用它来说明它支持哪种编码(压缩)
客户端无法告诉服务器要发送的字符集。服务器发送其数据和一些标题字段,说明正在使用的字符集。通常它位于ContentType
标题中,看起来像:text/html;字符集=UTF-8
使用WebClient
时,您希望将Encoding
属性设置为备用属性,以便在服务器未识别字符集时,将使用默认值。例如:
WebClient client = new WebClient();
client.Encoding = Encoding.UTF8;
string s = client.DownloadString(DownloadUrl);
有关更多信息,请参阅。如果要支持宽字符,应使用类似utf-16UTF8的内容。UTF8不是ASCII/ANSI,但UTF8支持ASCII字符集。