2010-02-01 26 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 \";編譯器會抱怨,如果你沒有。

相關問題