2010-02-01 24 views
1

我无法引用报价。将字符串传递到命令行时如何处理字符串中的引号

EG,我有带引号的MP3的字符串:

string ARTIST = "John \"The Man\" Doe" 

然后我想这个通过与转义序列的命令行。因此,我需要我的字符串的样子(我认为):

ARTIST = "John \\\"The Man\\\" Doe" 

因此,看起来,对于每一次我在一个字符串(实际)",我需要\"

我已经尝试使用:

ARTIST.Replace("\"","\\\"") 

但是,这并没有奏效。在我的应用程序的命令行中处理引号的正确方法是什么?

回答

2

确保你正在做的:

ARTIST = ARTIST.Replace("\"","\\\""); 

而不只是:

ARTIST.Replace("\"","\\\""); 

这已经是这样吗?

+0

哈哈谢谢你!哦!:) – Dave 2010-02-01 23:03:31

0

Windows命令行中不使用\作为报价一种逃避,它采用了冗余的报价,

所以要通过转义每个引号

string ARTIST = "John \"\"The Man\"\" Doe" 
"John ""The Man"" Doe"您在C#中获得
+0

感谢但我从其他地方检索到的字符串,它已经作为'“John \”Man \“Doe”(例如) – Dave 2010-02-01 23:00:36

+0

它被送入LAME.exe mp3编码器并且\ escape字符起作用当我尝试手动 – Dave 2010-02-01 23:01:25

+0

转义引号的方法是特定于应用程序,但大多数应用程序使用\转义字符(例如C#的'Main(字符串[])'使用\转义字符)。 – Ruben 2010-02-01 23:04:59

0

的基本思想似乎是正确的,但你还可以添加周围的报价,即

"\"" + ARTIST.Replace("\"", "\\\"") + "\"" 

而且,请注意,您需要三个反斜杠而不是两个到e scape \";编译器会抱怨,如果你没有。

相关问题