UTF-8 в Unicode с использованием C#


Помогите мне пожалуйста. У меня есть проблема с кодированием строки ответа после запроса 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 с подстроками типа u041cu043eu0439. Что это? Как закодировать его на кириллицу? Я очень устал после многих попыток.

Исправлено

2 2

2 ответа:

Я что-то упустил?

Что это?

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

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

Я не уверен на 100%, но я предполагаю, что вам придется пройти кодировку.Unicode для StreamReader.