C# streamreader中字符串中的反斜杠

C# streamreader中字符串中的反斜杠,c#,csv,C#,Csv,我有个奇怪的问题 我尝试读取csv文件进行数据迁移。这是文件的外观(UTF8格式) 如您所见,它是逗号分隔的 我使用streamreader阅读: System.IO.StreamReader file = new System.IO.StreamReader(documentFilePath, Encoding.UTF8); while ((line = file.ReadLine()) != null) { //perform the transformation } 我已经做了一

我有个奇怪的问题

我尝试读取csv文件进行数据迁移。这是文件的外观(UTF8格式)

如您所见,它是逗号分隔的

我使用streamreader阅读:

System.IO.StreamReader file = new System.IO.StreamReader(documentFilePath, Encoding.UTF8);
while ((line = file.ReadLine()) != null)
{
    //perform the transformation
}
我已经做了一百万次了,没有任何问题。但是,当读取这些行时,它们会突然像这样出现(从调试表复制):


这些反斜杠是从哪里来的?我看错文件了吗。我怎样才能防止这种情况?因为它破坏了我对数据的进一步处理。

调试器只是显示值,就像它在代码中出现在文字中一样(请注意,它也被引号包围)。您可以单击小放大镜打开一个文本视图,该视图不会在那里放置反斜杠


如果您对此有疑问,您可以将读取的文本写入控制台进行验证。

调试器只显示值,就像它在代码中的文字中显示一样(请注意,它也被引号包围)。您可以单击小放大镜打开一个文本视图,该视图不会在那里放置反斜杠


如果您对此有疑问,您可以将读取的文本写入控制台进行验证。

它们只是调试视图的产物。字符串实际上只包含一个
,但调试视图将其显示为
\”
。将字符串写入控制台,或显示消息框,您将看到那些
\
实际上并不存在

这允许您查看
是否只是字符串中包含的
,还是终止字符串的
。这与C#中用于字符串文本的语法相同


无论是什么破坏了您对数据的进一步处理,都不是您在调试视图中看到的
的转义。

它们只是调试视图的一个工件。字符串实际上只包含一个
,但调试视图将其显示为
\”
。将字符串写入控制台,或显示消息框,您将看到那些
\
实际上并不存在

这允许您查看
是否只是字符串中包含的
,还是终止字符串的
。这与C#中用于字符串文本的语法相同


无论是什么破坏了您对数据的进一步处理,都不是您在“调试”视图中看到的
的转义。

您也阅读了引号。反斜杠+引号组合仅在调试器中显示(c#strings…),否则它只是一个引号

如果不需要,请修剪列值


编辑:我可以在注释中看到,您正在使用第一列的值作为名称创建文件夹。文件夹名称不能包含引号。反斜杠+引号组合仅在调试器中显示(c#strings…),否则它只是一个引号

如果不需要,请修剪列值


编辑:我可以在注释中看到,您正在使用第一列的值作为名称创建文件夹。文件夹名称不能包含

实际上,我正在使用第一列构建目录路径,反斜杠导致路径创建中出现异常。这就是我发现这个问题的原因。因此,它不仅限于调试器。@real_yggdrasil那么您的示例字符串是错误的,或者您误诊了问题。您的示例字符串不包含任何``es。实际上,我正在使用第一个列构建目录路径,反斜杠导致路径创建中出现异常。这就是我发现这个问题的原因。因此,它不仅限于调试器。@real_yggdrasil那么您的示例字符串是错误的,或者您误诊了问题。您的示例字符串不包含任何``es。先生,您是对的!问题不是反斜杠,而是双引号!非常感谢你的提示。先生,你说得对!问题不是反斜杠,而是双引号!谢谢你的提示。
System.IO.StreamReader file = new System.IO.StreamReader(documentFilePath, Encoding.UTF8);
while ((line = file.ReadLine()) != null)
{
    //perform the transformation
}
"\"ITM-0015-0163\",\"62222532\",\"ACT-0000-4755\",\"61635591\",\"TGP\",\"TG_P_GV_01\",\"\",\"TG_Print_GV\",\"%NAME%|%STREETNAME%|%HOUSENUMBER%|%HOUSENUMBEREXT%||%POSTALCODE%|%LOCALITY%|%AREACODE%|%CONNECTIONNUMBER%|%URL%|%EMAIL%||%COMMERCIAL%||||||%PRODNR%\",\"10\",\"\",\"\",\"\",\"FALSE\""