Я рекомендую , а не , используя WebClient.DownloadString
.Это связано с тем, что (по крайней мере, в .NET 3.5) DownloadString недостаточно умен, чтобы использовать / удалять спецификацию, если она присутствует. Это может привести к спецификации (
) неправильно отображается как часть строки при возврате данных UTF-8 (по крайней мере, без кодировки) - ick!
Вместо этого это небольшое изменение будет корректно работать с спецификациями:
string ReadTextFromUrl(string url) {
// WebClient is still convenient
// Assume UTF8, but detect BOM - could also honor response charset I suppose
using (var client = new WebClient())
using (var stream = client.OpenRead(url))
using (var textReader = new StreamReader(stream, Encoding.UTF8, true)) {
return textReader.ReadToEnd();
}
}