2012-06-13 53 views
2
StringBuilder request = new StringBuilder(); 
request.Append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); 

byte[] msg; 
string decoded; 

msg=System.Text.Encoding.UTF8.GetBytes(request.ToString()); 
decoded = System.Text.Encoding.UTF8.GetString(msg); 

解码的字符串是<?xml version=\"1.0\" encoding=\"UTF-8\"?>UTF-8编码,在C#双引号

结果有\" 我的问题是如何编码的消息,报价和decdoing 如果之后仍然得到字符串,不\"我使用AppendLine,结果也有\r\n

+1

你在哪里看结果?在Visual Studio调试模式?如果是这样的话,放心=>在实际的字符串中没有'\“,这是字符串的调试器表示。这就是说,使用StringBuilder来操纵XML可能是你能做的最糟糕的事情之一。应该只能用XML解析器来操作 –

+0

谢谢和是的我正在调试器,因为这只是一个消息,我会发送我不是XML解析器..但我会看看它谢谢 – user1178514

回答

6

你在看调试器中的字符串吗?如果是这样,它将显示字符串,就好像它是C#中的字符串字面值。 \不是真的在那里。如果你在某处输出字符串,你可以esily验证。

+0

是的,我是...谢谢 – user1178514

0

@容祖儿的答案是正确的 - 但由于XML支持单引号,你可以用这个代替 - 这是我找到清洁阅读:

request.Append("<?xml version='1.0' encoding='UTF-8'"?>"); 
+0

request.Append(@“<?xml version =”“1.0”“encoding =”“UTF-8”“?>”); 同样的结果 request.Append(@“<?xml version ='1.0'编码= 'UTF-8'? “>”); 如果我做AppendLine,我仍然可以在调试器中看到/ r/n。 – user1178514