HttpWebRequest Unicode символов - PullRequest
       9

HttpWebRequest Unicode символов

1 голос
/ 26 сентября 2011

Я использую этот код:

HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
string result = null;
using (HttpWebResponse resp = (HttpWebResponse)req.GetResponse())
{
   StreamReader reader = new StreamReader(resp.GetResponseStream());
   result = reader.ReadToEnd();
   reader.Close();
}

В result я получаю текст, похожий на 003cbr /003e003cbr /003e (я думаю, что вместо этого должно быть 2 перевода строки). Я попытался с 2, 3 параметрами версии Streamreader, но строка была той же. (запрос возвращает строку json)

Почему я получаю этих персонажей и как их избежать?

Ответы [ 2 ]

3 голосов
/ 26 сентября 2011

Не совсем понятно, что это за текст, но вы не указываете кодировку в данный момент.Какую кодировку контента использует сервер?StreamReader по умолчанию будет UTF-8.

Похоже, на самом деле вы получаете какой-то странно закодированный HTML, так как U + 003C равен < и U + 003Eравен >, давая <br /><br /> в качестве содержимого.Это не JSON ...

Два теста:

  • Использовать WebClient.DownloadString, который определит правильную кодировку для использования
  • Посмотрите, что показано, используя тот жеURL в браузере

РЕДАКТИРОВАТЬ: Хорошо, теперь, когда я видел текст, это на самом деле получил:

\u003cbr /\u003e

Часть \uздесь важно - это часть JSON, в которой говорится, что следующие четыре символа образуют шестнадцатеричное представление кодовой единицы UTF-16.

Любой API-интерфейс JSON, используемый для анализа этого текста, должен выполнять эскапинг за вас.

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