为什么使用C#从数据库中获取文本时要获取文字\r和\n?
在数据库字段中,我存储并返回电子邮件的“正文”(以防更改)。在这里,我有\n\r个字符来获取新行。但是,它似乎不起作用。任何想法: 因此,现场数据:为什么使用C#从数据库中获取文本时要获取文字\r和\n?,c#,string,C#,String,在数据库字段中,我存储并返回电子邮件的“正文”(以防更改)。在这里,我有\n\r个字符来获取新行。但是,它似乎不起作用。任何想法: 因此,现场数据: 'TBD.\r\n\nExpect' 我的输出如下所示(文字\r和\n): 想法?将您的\r\n替换为以下内容: text.Replace("\r\n", System.Environment.NewLine); 转义序列在实际字符串对象中没有意义——只有在C#解析器/编译器解释它们时才有意义。您希望在数据库字段中存储实际的新行,而不是4个字
'TBD.\r\n\nExpect'
我的输出如下所示(文字\r和\n):
想法?将您的
\r\n
替换为以下内容:
text.Replace("\r\n", System.Environment.NewLine);
转义序列在实际字符串对象中没有意义——只有在C#解析器/编译器解释它们时才有意义。您希望在数据库字段中存储实际的新行,而不是4个字符“\r\n”。,因为
\r
,\n
等仅在C代码的字符串中起作用。如果从文件、数据库或其他内容中读取字符串,它们只会获取逐字记录值…很可能该字符串已转义,\r\n因此实际返回的字符串将相当于一个字符串
myString=“\\r\\n”代码>
因此,在添加或从数据库中删除时,需要删除这些额外的斜杠
虽然可能与您的问题无关,但您的额外\n
可能会导致查看问题,具体取决于系统、编辑器等
您可以使用以下方法替换所有出现的\\n\\r等:
replacedString = myString.Replace("\\r\\n", "\r\n");
这应该可以解决您的问题。等等,我不明白。您使用的是\n\r
还是\r\n
?\r应该在\n之前。想想老式打字机,首先是回车符,将打印头移回左边,然后将纸张向前卷轴一行。顺便说一句,您在环境中有正确的换行符值。换行符为什么不尝试使用环境。换行符?只有电子邮件正文是html格式的,而不是纯文本。这里的问题与html无关,这与字符串在编译时和运行时的解释方式有关+我也祝你好运。此外,
标记仅在电子邮件正文为html格式时有效。+1因为即使Noldorin和Andrea是正确的,他们也没有指出如何实际获取转义字符。因为我认为你不应该在-1。
replacedString = myString.Replace("\\r\\n", "\r\n");