2012-06-13 39 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