Веб-сервис и кодирование - PullRequest
       0

Веб-сервис и кодирование

0 голосов
/ 08 января 2012

Я подключаюсь к веб-службе следующим образом:

HttpWebRequest req = (HttpWebRequest)WebRequest.Create(
    "http://mywebserviceaddress.com/attributes=someatt");
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";

using (StreamReader stIn = new StreamReader(
       req.GetResponse().GetResponseStream(),Encoding.UTF8))
{
      strResponse = stIn.ReadToEnd();
      return strResponse;
}

Однако я получаю ответ с (вероятно) неправильным кодированием, поэтому в результате на моей странице появляется следующая проблема:

encoding failure

Я что-то не так делаю или это проблема стороннего веб-сервиса?Как я могу получить ответ без этих глупых проблем?Вот скриншот отладчика:

enter image description here

1 Ответ

1 голос
/ 08 января 2012

Страница, вероятно, не UTF8 .Похоже, что специальные символы используют верхнюю половину символа ASCII, так что это какая-то старая кодировка.Чтение его как UTF8 приводит к ошибкам, потому что читатель не ожидает однобайтовых специальных символов.

Сохраните результат GetResponse() в переменной и выведите содержимое ContentTypeCharacterSet.Если сервер работает правильно, он показывает использованную кодировку в этом свойстве.Затем вы можете использовать правильный набор символов в вашем StreamReader.

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