使用c#中的反斜杠表示法转义unicode字符串

时间:2011-06-14 18:09:55

标签: c# unicode character-encoding ascii

我如何转换这个词

  

MAMA

到这个词

  

MAM \ U00E1

1 个答案:

答案 0 :(得分:3)

您正在寻找类似下面代码的内容。

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