c# в чем может быть ошибка преобразования unicode в utf8 текст?

string s = "\\u0423 \\u0432\\u0430\\u0441"
Encoding.Default.GetString(Encoding.Default.GetBytes("\\u0423 \\u0432\\u0430\\u0441"));

c# в чем может быть ошибка преобразования unicode в utf8 текст?

В моем случае нужно посимвольно перекодировать через FOR? или есть готовое решение?

Эту строку возвращает сервер с заголовком Content-Type: charset=utf-8


Ответы (1 шт):

Автор решения: srvr4vr
string unicodeEscapedString = "\\u0423 \\u0432\\u0430\\u0441";

string unicodeString = Regex.Unescape(unicodeEscapedString);

Encoding utf8 = Encoding.UTF8;
Encoding unicode = Encoding.Unicode;

//конвертим в байтовый массив
byte[] unicodeBytes = unicode.GetBytes(unicodeString);

// конвертим байты уникода в утф8
byte[] utf8Bytes = Encoding.Convert(unicode, utf8, unicodeBytes);

// Конвертим их в символы
char[] utf8Chars = new char[utf8.GetCharCount(utf8Bytes, 0, utf8Bytes.Length)];
utf8.GetChars(utf8Bytes, 0, utf8Bytes.Length, utf8Chars, 0);
string utf8String = new string(utf8Chars);
→ Ссылка