Экранирование строки Юникода с использованием обратной косой черты в c # - PullRequest
2 голосов
/ 14 июня 2011

как я могу преобразовать это слово

мам

в это слово

мам \ U00E1

1 Ответ

3 голосов
/ 14 июня 2011

Вы ищете что-то вроде кода ниже.

StringBuilder sb = new StringBuilder();
string word = "mamá";
foreach (char c in word)
{
    if (' ' <= c && c <= '~')
    {
        sb.Append(c);
    }
    else
    {
        sb.AppendFormat("\\U{0:X4}", (int)c);
    }
}
string escapedWord = sb.ToString();

Или более компактно:

Func<char, string> escapeIfNecessary = c => (' ' <= c && c <= '~') ? c.ToString() : string.Format("\\U{0:X4}", (int)c);
escapedWord = string.Join("", word.Select(escapeIfNecessary).ToArray());
...