В .NET, когда я получаю поток ответа от сервера, какой тип кодировки мне следует использовать? - PullRequest
1 голос
/ 22 декабря 2010

В следующем примере я получаю ответ от сервера; однако мне нужно установить тип кодировки ASCII или UTF8?

Dim objURI As Uri = New Uri(URL)
Dim wReq As WebRequest = WebRequest.Create(objURI)
Dim wResp As WebResponse = wReq.GetResponse()
Dim respStream As Stream = wResp.GetResponseStream()
Dim reader As StreamReader = New StreamReader(respStream, Encoding.ASCII)
Dim respHTML As String = reader.ReadToEnd()
wResp.Close()

Ответы [ 2 ]

1 голос
/ 22 декабря 2010

Это зависит от того, что вы ожидаете от сервера.В случае HTML (который, как вы ожидаете), ASCII работает на 99% времени для англоязычных страниц и должен позволять вам декодировать все элементы HTML независимо.Тем не менее, первое, что вы должны сделать, это прочитать любые «мета» теги в элементе head документа;они будут определять кодировку текста в теле.Обычно, если это не ASCII, это UTF-8, который обратно совместим с ASCII (но покажет некоторые странные символы для 2-байтовых и 4-байтовых кодов).

1 голос
/ 22 декабря 2010

Это действительно зависит от того, в какую кодировку отправляет ответ веб-сервер.

Состояние документы :

Кодировка символов устанавливается параметр кодирования и буфер размер установлен в 1024 байта. StreamReader объект пытается обнаружить кодирование, посмотрев на первый три байта потока. Это автоматически распознает UTF-8, Unicode с прямым порядком байтов и с прямым порядком байтов Текст Unicode, если файл начинается с соответствующие метки порядка следования байтов.

Мне кажется, что вы должны быть в безопасности, просто позволяя среде выполнения распознавать кодировку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...