10

I need to write a string literal to a text file, but the C# compiler finds errors when I use quote characters in it.

My current code:

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

I need the output for the text file to be:

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

How can I put quote characters in strings in C#?

1
  • 2
    If you are creating XML then you shouldn't use a text writer like that. Use an XmlWriter instead to generate the XML correctly. Commented May 26, 2010 at 8:21

3 Answers 3

26

You need to escape the quotation marks to put them in a string. There is two ways of doing this. Using backslashes in a regular string:

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

Using double quoation marks in a @-delimited string:

writeText.WriteLine(@"<?xml version=""1.0"" encoding=""utf-8""?>");
Sign up to request clarification or add additional context in comments.

2 Comments

The second form (@-delimited string) is called a verbatim string literal msdn.microsoft.com/en-us/library/aa691090(v=vs.71).aspx
That documentation link has been retired, try this one.
9

Try

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

Have a look at "What character escape sequences are available?" of the C# FAQ

2 Comments

Thanks, you really should 'accept' answers, in this case mine or Guffas, they are both correct :)
yes both of you r right.but some times i was too busy..to do it..i really sorry for that..thanks for remind me..
3

Since to XML both " and ' can used, try

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

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.