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);