Декодирование \u. в строковый эквивалент - C#
Формулировка задачи:
Всем привет Получаю строку HtmlNode.InnerText и там имею строки по типу \u0097 , нужно их заменить строковым эквивалентом. Можно было бы прогнать через Replace() или поиграться с байтами, но у меня приходят очень длинные строки (описание к фильмам) и где будут стоять \u.... и какие там будут цифры, я даже примерно не знаю. Подскажите класс и метод для декодирования. Вот пример строки, которая возвращается:
Юная Холли Паркер живет в солнечной Калифорнии с самым замечательным отцом на свете, а ее ровесница Энни Джеймс \u0097 в туманном Лондоне с прекрасной любящей матерью. Первая мечтает о маме, без которой ей очень тяжело, а второй так хочется, чтобы у нее был папа.Когда девочки случайно встречаются в летнем лагере, им есть, чем поделиться друг с другом. Но помимо общих горестей между Холли и Энни существует еще одно сходство: они\u0085 близнецы! Их родители развелись много лет назад, и девочки решают исправить эту трагическую ошибку.Сестрички начинают действовать: американка возвращается в Лондон, а англичанка в Америку. И ничего не подозревающие родители легко попадают в ловушку\u0085
Решение задачи: «Декодирование \u. в строковый эквивалент»
textual
Листинг программы
string text = "Юная Холли Паркер живет в солнечной Калифорнии с самым замечательным отцом на свете, а ее ровесница Энни Джеймс \\u0097 в туманном Лондоне с прекрасной любящей матерью. Первая мечтает о маме, без которой ей очень тяжело, а второй так хочется, чтобы у нее был папа.Когда девочки случайно встречаются в летнем лагере, им есть, чем поделиться друг с другом. Но помимо общих горестей между Холли и Энни существует еще одно сходство: они\\u0085 близнецы! Их родители развелись много лет назад, и девочки решают исправить эту трагическую ошибку.Сестрички начинают действовать: американка возвращается в Лондон, а англичанка в Америку. И ничего не подозревающие родители легко попадают в ловушку\\u0085"; string[] win1251chars = Enumerable.Repeat(Encoding.GetEncoding(1251), 256).Select((enc,n) => enc.GetString(new byte[]{(byte)n})).ToArray(); text = Regex.Replace( text, @"\\u([\da-fA-F]{4})", m => { int code = (int)byte.Parse(m.Groups[1].Value, NumberStyles.HexNumber); return win1251chars[code]; } );
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д