如何在字符串中添加引号?

10
我需要将一个字符串字面量写入文本文件,但是当我在其中使用引号字符时,C#编译器会发现错误。
我的当前代码:
writeText.WriteLine("<?xml version="1.0" encoding="utf-8"?>");
我需要文本文件的输出为:
<?xml version="1.0" encoding="utf-8"?>

如何在C#字符串中包含引号字符?


2
如果你正在创建XML,那么就不应该使用像那样的文本编写器。相反,应该使用XmlWriter来正确生成XML。 - Dirk Vollmar
3个回答

26

你需要转义引号才能将它们放入字符串中。有两种方法可以做到这一点。一种是在普通字符串中使用反斜杠:

writeText.WriteLine("<?xml version=\"1.0\" encoding=\"utf-8\"?>");

在@定界字符串中使用双引号:

writeText.WriteLine(@"<?xml version=""1.0"" encoding=""utf-8""?>");

2
第二种形式(@-分隔符字符串)称为逐字字符串文字。https://msdn.microsoft.com/zh-cn/library/aa691090(v=vs.71).aspx - BlackTigerX
该文档链接已被废弃,请尝试使用此链接 - Scott Martin

9

尝试

writeText.WriteLine("<?xml version=\"1.0\" encoding=\"utf-8\"?>");

请查看C# FAQ中的“有哪些字符转义序列可用?”

谢谢,你真的应该“接受”答案,在这种情况下是我的或Guffas的,它们都是正确的 :) - Binary Worrier
是的,你们两个都是对的。但有时候我太忙了,没能做到。我真的很抱歉。谢谢你们提醒我。 - riad

3

由于在XML中可以使用“和',因此请尝试

writeText.WriteLine("<?xml version='1.0' encoding='utf-8'?>");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接