4

可能重复:
我可以将 C# 字符串值转换为转义字符串文字吗

如何打印字符串(通过 Console.WriteLine()),以便逐字打印字符串中可能存在的任何/所有转义序列?

例子:

string s = "This \r\n has \t special \\ characters.";
Console.WriteLine(s);

/* Output (I don't want this)

This 
 has    special \ characters.

*/

我希望输出读取:

This \r\n has \t special \\ characters.

请注意,在我的应用程序中,我从第三方接收字符串(其中包含转义序列) - 即,如果我自己创建字符串,我知道我可以这样做

string s = @"This \r\n has \t special \\ characters.";
4

1 回答 1

5

这样做的唯一方法是自己解码转义序列并将它们作为文字条目放回字符串中。这将需要某种转换功能。例如

string EscapeIt(string value) {
  var builder = new StringBuilder();
  foreach (var cur in value) {
    switch (cur) {
      case '\t': 
        builder.Append(@"\t");
        break;
      case '\r': 
        builder.Append(@"\r");
        break;
      case '\n':
        builder.Append(@"\n");
        break;
      // etc ...
      default:
        builder.Append(cur);
        break;
    }
  }
  return builder.ToString();
}
于 2012-02-23T18:01:51.323 回答