UTF-8 для Unicode с использованием C # - PullRequest
2 голосов
/ 28 сентября 2010

Помогите мне, пожалуйста. У меня проблема с кодировкой строки ответа после запроса GET:

var m_refWebClient = new WebClient();
var m_refStream = m_refWebClient.OpenRead(this.m_refUri);
var m_refStreamReader = new StreamReader(this.m_refStream, Encoding.UTF8);
var m_refResponse = m_refStreamReader.ReadToEnd();

После вызова этого кода моя строка m_refResponse имеет вид json source с подстроками типа \u041c\u043e\u0439. Что это? Как кодировать это для кириллицы? Я очень устал после многих попыток.

исправлен

Ответы [ 2 ]

3 голосов
/ 28 сентября 2010

Я что-то здесь упускаю?

Что это?

"\u041c\u043e\u0439" является строковым литеральным представлением Мой. Вам больше ничего не нужно делать, строки - это Unicode, у вас уже есть кириллица.

(Если вы не имеете в виду, что у вас буквально есть последовательность \u041c\u043e\u0439, т. Е. Значение "\\u041c\\u043e\\u0439". Это не будет результатом ошибки кодирования, это будет происходить на сервере Например, он возвращает строку JSON, поскольку JSON и C # используют одинаковые \u escape. Если это происходит, используйте анализатор JSON.)

2 голосов
/ 28 сентября 2010

Я не на 100% в этом, но я бы предположил, что вам придется передать Encoding.Unicode в StreamReader.

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