使用Visual Studio 2010和C#
这已经工作了很多年了...
string myString= txtSomeMultiLineTextBox.Text;
string str = myString.Replace(System.Environment.Newline, "<br />");
设置断点时,如果myString = LineOne\nLineTwo\nLineThree
\n不被替换...
然后str = myString
没有替代。
myString保持不变
我到处都在研究Environment.Newline以及与操作环境的区别,而我所使用的是Windows 7。
此环境不会改变。
为什么Environment.Newline无法读取\n?
谢谢,
最佳答案
假设您已将其标记为asp.net
,那么我将假定txtSomeMultiLineTextBox
最终是TextArea
。TextArea
返回由\n
或\r\n
分隔的文本,具体取决于特定的浏览器版本。 (IE以前始终使用\r\n
,现在使用\n
,奇怪但正确。)
因此,它之所以能够正常工作,是因为您在IE的早期版本上进行了测试,其中\r\n
被用作新行,而您现在正在使用IE 10、11或Chrome,而\n
是新行。
因此,为了容忍这两种情况,请执行以下操作:
myString.Replace("\r\n", "\n").Replace("\n", "<br />");
并一劳永逸地清除此问题:
不信任Environment.NewLine为您解决此问题。
如果您的环境是Windows,那么即使在Microsoft产品中,也没有在各处使用统一的新行。最好准备好卷起袖子并自己调整线条末端。
关于c# - System.Environment.NewLine和\n,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22058635/