我正在使用ContentType
类来解析网页的内容类型(type + encoding
)。
我注意到此输入失败(FormatException
):
的text / html; charset:windows-1255
这是代码:
using System.Net.Mime;
//...
ContentType ct;
try
{
ct = new ContentType(content_type);
}
catch (FormatException ex)
{
return eFileType.Unknown;
}
为什么要投掷FormatException
?
答案 0 :(得分:4)
ContentType
构造函数上的documentation表示如果出现FormatException
,则contentType
charset:
采用无法解析的形式。
在这种情况下,这是因为不支持charset=
,var x = new ContentType("text/html; charset=windows-1255");
是:
attribute
此行为符合W3C specs on content type headers,表明参数必须遵循以下格式:
参数:= attribute“=”value
所以等号是value
和{{1}}之间记录的分隔符。
答案 1 :(得分:2)
或者,您可以通过以下字符串表示创建MediaTypeHeaderValue:
MediaTypeHeaderValue.Parse(“application / x-www-form-urlencoded; charset = utf-8”)
https://forums.asp.net/t/1780855.aspx?Media+type+name+and+a+custom+formatter+