转义字符出现在字符串中

时间:2013-01-24 12:21:43

标签: c# string escaping

我正在Visual c#2010中编写一段代码来生成一个字符串。该字符串需要包含反斜杠\和语音标记"。

我尝试过以下方法:

string StringOutputVariable;
string StringVariable = "hello world";
StringOutputVariable = "\"C:\\Program Files\\some program\\some program.exe\" " + StringVariable;

string StringOutputVariable;
string StringVariable = "hello world";
StringOutputVariable = @"""C:\Program Files\some program\some program.exe"" " + StringVariable;

但是他们都将转义字符放在输出字符串中:

  

\" C:\\ Program Files \\ some program \\ some program.exe \"你好世界

  

\" C:\\ Program Files \\ some program \\ some program.exe \"你好世界

我希望它输出的是:

  

" C:\ Program Files \ some program \ some program.exe"你好世界

为什么我的代码会将转义字符输出到字符串中?

提前致谢 格雷厄姆

4 个答案:

答案 0 :(得分:2)

StringOutputVariable = "\"" +
        @"C:\Program Files\some program\some program.exe\" + "\" " + StringVariable;

答案 1 :(得分:2)

我假设您正在查看调试器中的字符串。调试器将显示字符串,就好像它们是字符串文字一样,即引号和反斜杠转义。字符串就像你想要的那样。

只需将字符串打印到控制台或将其放在表单上即可轻松检查。

答案 2 :(得分:1)

试试这个:

string path = @"C:\Program Files\some program\some program.exe";

string result = string.Format("{0}{1}{0} hello world", "\"", path);

// you can check it: MessageBox.Show(result);

答案 3 :(得分:1)

调试器显示字符串string literals

试试这个;

    string StringOutputVariable;
    string StringVariable = "hello world";
    StringOutputVariable = "\"" + @"C:\Program Files\some program\some program.exe\" + "\"" + StringVariable;
    Console.WriteLine(StringOutputVariable);

这是DEMO

输出是:

"C:\Program Files\some program\some program.exe\"hello world