1、通常直接写的字符串中有转义符是前面加【@】就能解决:
如:string str = @"请确认数据有误!\r\n中断程序运行。";
这时实际存入str中的内容是"请确认数据有误!\\r\\n中断程序运行。"
2、如果字符串变量中的内容中有直接携带了转义符给怎么替换?
如:假设str中已经存有"请确认数据有误!\r\n中断程序运行。"的内容。
这时实际存入str中的内容中的\r和\n是已转义后的内容,不是"\r"或"\n"这个字符。
所以想把\r或\nz换成\\r或\\n就要去寻找转义后的那个值,但转义后的那个值往往是不可显示的字符。
3、先来了解转义后的字符在C#中的表述方法。
ASCII码肯定能表示这种转义后的不可显示的字符,这些ASCII码在C#中的如下表述的:
Char Hex Oct Dec C#中表述方式
如:回车符 CR 0D 015 13 x0d
换行符 LF 0A 012 10 x0a
退格键 BS 08 010 8 x08
ESC键 ESC 1B 033 27 x1b
4、现在来把str中的\r和\n替换成\r和\\n:
转义后的\r是: \x0d 转义后的\n是: \x0a
string strTemp = str.Replace("\x0a", "\\n").Replace("\x0d", "\\r");
结果strTemp中的内容是"请确认数据有误!\\r\\n中断程序运行。"