C#使用换行符编码文本字符串

jim*_*jim 49 c# encoding response

在C#中,我有一个字符串,我正在写入响应的输出流.当我保存这个文件并在记事本++打开它,或者写字板我得到很好的格式化,他们打算换行,当我打开与普通的旧Windows记事本文件,我得到一个长的文本字符串[]方找符号,其中线休息应该是.

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

谢谢

吉姆

Jon*_*eet 94

是的 - 这意味着你用的\n是换行符而不是换行符\r\n.记事本只能理解后者.

(注意,Environment.NewLine如果你想要平台默认的话,其他人建议也没问题 - 但是如果你是从Mono服务并且绝对需要\r\n,你应该明确地指定它.)

  • 如"在Linux上使用Mono部署服务器,并要求服务器提供数据".Mono是.NET的跨平台实现 - 请访问http://mono-project.com (3认同)

Tad*_*kys 18

使用Environment.NewLine进行换行.


Gui*_*ume 12

试试这个 :

string myStr = ...
myStr = myStr.Replace("\n", Environment.NewLine)
Run Code Online (Sandbox Code Playgroud)

  • @Guillaume:这次不是**,但没有理由说文件不能包含两种或更多种不同的行分隔符 - 我一直在网页中看到它.当你对换行符进行规范化时,你应该总是匹配所有三种:`Regex.Replace(@"\n |\r \n?","\ r \n")` (6认同)
  • 如果输入字符串包含\n和\ r \n,则此类操作将使其中断 (5认同)