2013-08-22 3 views
1

Я загрузил страницу и содержит пункт, имеющий этот тип котировок отмечаеткавычках кодировки в C#

«Я просто извлеченный эту строку из HTML страницы»

, но когда я пишу то, чтобы подать этот « символ отображается неправильно.

WebClient wc = new WebClient(); 
Stream strm = wc.OpenRead("http://images.thenews.com.pk/21-08-2013/ethenews/t-24895.htm"); 
StreamReader sr = new StreamReader(strm); 
StreamWriter sw = new StreamWriter("D://testsharp.txt"); 
String line; 
Console.WriteLine(sr.CurrentEncoding); 

while ((line = sr.ReadLine()) != null) { 
    sw.WriteLine(line); 
} 
sw.Close(); 
strm.Close(); 
+2

«но когда я пишу тогда в файл, этот символ« не отображается должным образом ». - так что * * показано, и как вы смотрите? (в текстовом редакторе? в отладчике?) –

+0

Также: знаете ли вы, что * кодирует * источник? Попробуйте указать это явно, чтобы не было никаких предположений; символ '' 'не ASCII, поэтому кодировка очень важна. –

+0

Я ищу в текстовом редакторе возвышенный текст и этот символ показан. – SoftRock

ответ

1

Если все, что вам нужно сделать, это записать файл на диск, а затем: использовать Stream API непосредственно, или (еще проще) просто использовать:

wc.DownloadFile("http://images.thenews.com.pk/21-08-2013/ethenews/t-24895.htm", 
    @"D:\testsharp.txt"); 

Если вы не» t рассматриваем его как двоичный, тогда вам нужно беспокоиться о encodings - и недостаточно просто посмотреть на sr.CurrentEncoding, потому что мы не можем быть уверены, что он обнаружил его правильно. Это может быть в том, что кодирование было сообщено в заголовках HTTP, что было бы неплохо. Он мог бы также быть в том, что кодирование указывается в спецификации в начале полезной нагрузки. Однако в случае HTML кодировка также может быть указана внутри HTML. Во всех трех случаях обработка файла как двоичного файла улучшит ситуацию (для спецификаций и внутри-html-чеков он полностью исправит его).

+0

Я хочу отобразить этот текст в форме richTextBox. – SoftRock

+0

Затем используйте 'DownloadString', но обратите внимание, что вы по-прежнему будете сталкиваться с проблемами, если ваша кодировка неверна. –

Смежные вопросы