C# 编码带有换行符的文本字符串

问题描述 投票:0回答:6

我有一个字符串正在写入响应的输出流。在我保存此文档并在 Notepad++ 或写字板中打开它后,我在预期的位置得到了格式良好的换行符,但是当我使用常规的旧 Windows 记事本打开此文档时,我得到一个带有 □ 的长文本字符串(方形符号),其中换行符应该是。

有没有人有这方面的经验?

c# encoding response
6个回答
119
投票

是的 - 这意味着您使用

\n
作为换行符而不是
\r\n
。记事本只懂后者。

(请注意,如果您希望平台默认,其他人建议的

Environment.NewLine
很好 - 但如果您从 Mono 提供服务并且肯定想要
\r\n
,您应该明确指定它。)


24
投票

使用 Environment.NewLine 换行符。


14
投票

试试这个:

string myStr = ...
myStr = myStr.Replace("\n", Environment.NewLine)

2
投票

试试 ,它会工作! :)

public async Task AjudaAsync(IDialogContext context, LuisResult result){
       await context.PostAsync("How can I help you? \n\n 1.To Schedule \n\n 2.Consult");
       context.Wait(MessageReceived);
}

1
投票

还有:

string s = $"first line{Environment.NewLine}second line";

0
投票

如前所述,最好使用

Environment.NewLine

\n
代表换行符,常用于类 Unix 系统(如 Linux 和 macOS)和许多编程语言中的换行符。

Environment.NewLine
是特定于平台的字符串,表示当前操作系统的换行符序列。 它会自动适应运行代码的平台 上使用的换行约定。在 Windows 上,
Environment.NewLine
等同于
\r\n
,而在类 Unix 系统上,它等同于
\n
.

© www.soinside.com 2019 - 2024. All rights reserved.