Как поставить кавычки в строку?

Мне нужно записать строковый литерал в текстовый файл, но компилятор C# находит ошибки, когда я использую в нем символы кавычек.

Мой текущий код:

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

Мне нужен вывод для текстового файла:

<?xml version="1.0" encoding="utf-8"?>

Как я могу поместить символы кавычек в строки на С#?


person riad    schedule 26.05.2010    source источник
comment
Если вы создаете XML, вам не следует использовать такой текстовый редактор. Вместо этого используйте XmlWriter, чтобы правильно сгенерировать XML.   -  person Dirk Vollmar    schedule 26.05.2010


Ответы (3)


Вам нужно экранировать кавычки, чтобы поместить их в строку. Есть два способа сделать это. Использование обратной косой черты в обычной строке:

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

Использование двойных кавычек в строке, разделенной @:

writeText.WriteLine(@"<?xml version=""1.0"" encoding=""utf-8""?>");
person Guffa    schedule 26.05.2010
comment
Вторая форма (@-разделенная строка) называется дословным строковым литералом msdn.microsoft.com/en-us/library/aa691090(v=vs.71).aspx - person BlackTigerX; 18.02.2016
comment
Эта ссылка на документацию устарела, попробуйте эту. - person Scott Martin; 01.11.2018

Пытаться

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

Взгляните на «Какие escape-последовательности символов доступны?» из часто задаваемых вопросов по C#

person Binary Worrier    schedule 26.05.2010
comment
Спасибо, вы действительно должны «принять» ответы, в данном случае мои или Guffas, они оба правильные :) - person Binary Worrier; 26.05.2010
comment
да вы оба правы.но иногда я был слишком занят..чтобы сделать это..мне очень жаль..спасибо, что напомнили мне.. - person riad; 26.05.2010

Поскольку для XML можно использовать как ", так и ', попробуйте

writeText.WriteLine("<?xml version='1.0' encoding='utf-8'?>");
person Arto Viitanen    schedule 27.05.2010