C#TextFieldParser vs \ n

时间:2013-04-29 05:39:12

标签: c# csv escaping

我试图读取文本字段中包含\n的CSV文件。当我使用我在DrawString中阅读的\n文字中显示的内容时,而不是换行符。查看调试器中的字符串,TextFieldParser似乎已经为我自动转义了字符串。我没有在类文档中看到任何解决该行为的属性。

我尝试用String.Replace()解决这个问题。但我似乎无法在 中获得转义\。

string[] fields = parser.ReadFields();
String From = @"\\n"; // I put these here so that I could look at them in the debugger
String To = @"\n";
String Output = fields[1].Replace(From, To);

即使我正在使用@语法,看起来这些也会变得很糟糕。

我知道当有人向我展示时,这将变得很简单。请善待: - )

编辑----------

String Output = fields[1].Replace(@"\n", "\r\n");

经过测试和工作。感谢。

1 个答案:

答案 0 :(得分:1)

如果您查看调试器,则可视化换行符。它不是转义它(也就是说,它仍然是十六进制值为0x10的ASCII字符,而不是两个字符'\'和'n')。

DrawString不解释“\ n”(Unix风格的行)来表示“开始换行”。

但是,如果将“\ n”替换为“\ r \ n”,它应该可以正常工作。

http://social.msdn.microsoft.com/Forums/en-US/netfxcompact/thread/17e645bf-6751-44d5-a5be-af322b589122/