2010-02-01 7 views
1

Je n'arrive pas à comprendre les guillemets.comment gérer les guillemets dans une chaîne lors de la transmission de cette chaîne à la ligne de commande

EG, j'ai une chaîne pour un mp3 avec des citations:

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

Je veux ensuite passer ce à une ligne de commande avec les séquences d'échappement. Je dois donc ma chaîne à ressembler (je pense):

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

il ressemble, chaque fois que j'ai une (réelle) " dans ma chaîne, j'ai besoin \".

J'ai essayé d'utiliser:

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

Mais cela n'a pas fonctionné. Quelle est la bonne façon de gérer les guillemets sur la ligne de commande de mon application?

Répondre

2

Assurez-vous que vous faites:

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

Au lieu de:

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

Est-ce déjà le cas?

+0

lol merci! d'oh! :) – Dave

0

La ligne de commande Windows ne pas utiliser \ comme une évasion pour un devis, il utilise une citation redondante,

si vous voulez envoyer "John ""The Man"" Doe" que vous obtenez en C# en échappant à chaque citation

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

merci, mais la chaîne que je récupère d'ailleurs, il vient déjà comme "John \" The Man \ "Doe" '(par exemple) – Dave

+0

il est alimenté dans l'encodeur mp3 LAME.exe et le caractère \ escape fonctionne Quand j'essayais manuellement – Dave

+0

La méthode d'échappement des guillemets est spécifique à l'application, mais la plupart des applications utilisent les caractères \ escape (C# 's Main (string []) 'utilise \ caractères d'échappement, par exemple). – Ruben

0

L'idée de base ne semble être correct, mais avez-vous aussi ajouter les guillemets, à savoir,

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

Notez également que vous aurez besoin de trois antislashs au lieu de deux à l'e scape \"; le compilateur se plaindrait si vous ne le faisiez pas.

Questions connexes