Как привести русский текст к виду \u0418\u043b\u044c\u044f?

Подскажите как средствами C# или JS
перевести обычный русский текст к виду \u0418\u043b\u044c\u044f.
Заранее спасибо.
  • Вопрос задан
  • 2410 просмотров
Пригласить эксперта
Ответы на вопрос 1
using System;
using System.Text;

class Program
{
    static void Main()
    {
        string st = "Привет, мир!";
        Console.WriteLine(foo(st));
    }
    
    static string foo(string input)
    {
        StringBuilder sb = new StringBuilder();
        for(int i = 0; i < input.Length; i += Char.IsSurrogatePair(input, i) ? 2 : 1)
        {
            int index = Char.ConvertToUtf32(input, i);
            sb.Append(@"\u" + index.ToString("x4"));
        }
        
        return sb.ToString();
    }
}


Для суррогатных пар будет выдавать "некрасивые" значения - цифр будет больше четырёх штук.
Если планируется с ними работать, надо что-то придумать. Например, для всех формат "x8".
Если же нет, лучше кидать исключение по if(Char.IsSurrogatePair(input, i)).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы