5

我通过WebClient.ResponseHeaders. 如果我打印它:

client.ResponseHeaders["Content-Type"]

我得到类似的东西:

Content-Type: text/html; charset=UTF-8

所以我想得到它(如果有的话)。否则设置一个默认值。这是我的实际代码:

var KeysParsed = HttpUtility.ParseQueryString(client.ResponseHeaders["Content-Type"].Replace(" ", "").Replace(";", "&"));
var charset = ((KeysParsed["charset"] != null) ? KeysParsed["charset"] : "UTF-8");

我不知道为什么,但它看起来不那么灵活。你有什么建议?

4

2 回答 2

13

为什么要重新发明轮子?请参阅System.Net.Mime.ContentType

var contentType = new ContentType(client.ResponseHeaders["Content-Type"]);
Console.WriteLine("{0} ({1})", contentType.MediaType, contentType.CharSet);

var charset = (contentType.CharSet ?? "UTF-8");
于 2013-10-15T07:24:31.863 回答
-1

在得到响应后尝试使用 WebClient.Encoding。请看WebClient.Encoding

于 2013-10-15T07:35:28.000 回答