【问题标题】:Escaping an unicode string using backslash notation in c#在 c# 中使用反斜杠符号转义 unicode 字符串
【发布时间】:2011-09-14 22:28:40
【问题描述】:

如何转换这个词

妈妈

这个词

妈妈\U00E1

【问题讨论】:

  • 这不是“转换”,而是转义。
  • 决定转义哪个字符的规则是什么?我的意思是,为什么不把他们都逃走呢?

标签: c# unicode character-encoding ascii


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2017-02-28
    • 2011-11-14
    • 1970-01-01
    • 1970-01-01
    • 2021-12-16
    • 2012-01-26
    • 1970-01-01
    • 1970-01-01
    • 2021-04-11
    相关资源
    最近更新 更多