Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么使用C#从数据库中获取文本时要获取文字\r和\n?_C#_String - Fatal编程技术网

为什么使用C#从数据库中获取文本时要获取文字\r和\n?

为什么使用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个字

在数据库字段中,我存储并返回电子邮件的“正文”(以防更改)。在这里,我有\n\r个字符来获取新行。但是,它似乎不起作用。任何想法:

因此,现场数据:

'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");