我有以下代码片段,我下载了一个html页面。
我尝试了几种变体,我在downloadstring之后设置了UTF8编码。我做错了什么?
using (WebClient webClient = new WebClient())
{
webClient.Encoding = Encoding.UTF8;
var page = webClient.DownloadString("http://replacementurl.com");
}
答案 0 :(得分:1)
您需要检查code page
根据文档编码,您可以设置code page。但对我来说,那就是回归和异常。
这对我有用:
Encoding enc = new UTF8Encoding(true, true);
string value = "\u00C6 \u00D8 \u00C0 \u00C1 \u00C2";
try
{
byte[] bytes = enc.GetBytes(value);
foreach (var byt in bytes)
Debug.Write(String.Format("{0:X2} ", byt));
Debug.WriteLine("");
string value2 = enc.GetString(bytes);
Debug.WriteLine(value2);
}
catch (EncoderFallbackException e)
{
Debug.WriteLine("Unable to encode {0} at index {1}",
e.IsUnknownSurrogate() ?
String.Format("U+{0:X4} U+{1:X4}",
Convert.ToUInt16(e.CharUnknownHigh),
Convert.ToUInt16(e.CharUnknownLow)) :
String.Format("U+{0:X4}",
Convert.ToUInt16(e.CharUnknown)),
e.Index);
}
似乎您无法分配代码页。奇