C# - 为什么\n\r不工作?

Pat*_*ank 4 c# string

在数据库字段中,我正在返回我正在存储我的电子邮件的"正文"(如果它发生了变化).在这个我有\n\r字符来获得新的行.但是,它似乎没有奏效.有什么想法吗:

因此字段中的数据:'TBD.\ r \n \n期待'

我的输出看起来像TBD.\ r \n \n期待

思考?

Nol*_*rin 12

转义序列在实际的字符串对象中没有意义 - 只有在C#解析器/编译器解释它们时才有意义.您希望在数据库字段中存储实际的新行,而不是4个字符"\ r \n".


Fis*_*ish 5

很可能 \r\n 被转义了,所以实际返回的字符串将等同于一个字符串

myString = "\\r\\n";

因此,在添加或从数据库中删除时,您需要删除这些额外的斜杠。

虽然可能与您的问题无关,但\n根据系统、编辑器等,您拥有的额外资源可能会导致查看问题。

您可以使用以下方法替换所有出现的 \\n\\r 等:

replacedString = myString.Replace("\\r\\n", "\r\n");
Run Code Online (Sandbox Code Playgroud)

这应该可以解决您的问题。

  • +1 因为即使 Noldorin 和 Andrea 是正确的,他们也没有指出如何实际获得转义的转义字符。因为我认为你不应该得到-1。 (2认同)

Pra*_*ana 1

将您的替换\r\nSystem.Environment.NewLine以下内容可能对您有用:

text.Replace("\r\n",  System.Environment.NewLine);
Run Code Online (Sandbox Code Playgroud)