Конвертировать из строки в us-ascii в c # - PullRequest
1 голос
/ 12 ноября 2011

Я хочу преобразовать строку типа «123» в строку типа «\ u0031».Как я могу сделать это в .NET?Например: обратное преобразование:

Encoding enc = Encoding.GetEncoding("us-ascii",
                                          new EncoderExceptionFallback(),
                                          new DecoderExceptionFallback());
            byte[] by = enc.GetBytes(s);
            string ans = enc.GetString(by);
            return ans;

Ответы [ 2 ]

7 голосов
/ 12 ноября 2011

Строки в .NET уже являются Unicode, поэтому нет необходимости конвертировать их из Unicode в Unicode.

Если вы хотите вывести экранированную строку в юникоде, попробуйте следующее:

string ans = string.Concat(s.Select(c => string.Format("\\u{0:x4}", (int)c)).ToArray());

Результат:

\u0031\u0032\u0033

Посмотрите, как работает онлайн: ideone

В .NET 4.0 вы можете опустить вызов на ToArray.

0 голосов
/ 12 ноября 2011
string ans = Regex.Replace(s, ".", m => String.Format(@"\u{0:x4}", (int)m.Value[0]));
...