可能重复:
Can I convert a C# string value to an escaped string literal
如何打印字符串(通过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.";
答案 0 :(得分:4)
执行此操作的唯一方法是自己解码转义序列,并将它们作为文字条目放回字符串中。这需要某种转换功能。例如
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();
}
答案 1 :(得分:0)
您必须自己将二进制字符转换为转义符。应该不难做到。