2011-12-01 60 views
0

Web服務返回一個帶有法文文本的xml字符串。當打印XML節點asp.net XML:讀取xml節點並顯示編碼文本

xmlResponse.LoadXml(resp); 
XmlNode Text = xmlResponse.SelectSingleNode("/res/Text"); 
sMessageText = Text.InnerText; 

的文字是這樣的:

例如樂NOM德樂propritaire去點菜DOIT TRE恩特雷里奧斯4等32個 caractres

如何編碼的呢?我如何顯示可讀文本。

謝謝

+1

您可以使用[System.Text.Encoding](http://msdn.microsoft.com/en-us/library/system.text.encoding%28v=VS.100%29.aspx)將文本,但你是創建這個XML還是從其他地方消費?因爲如果你的xml具有正確的編碼,你不需要做任何轉換。 – thiagoleite

+0

xml響應來自另一個系統。我只是想,也許我必須以其他方式捕獲xml響應... 當前我正在使用LoadXml。 string resp =調用webservice .... xmlResponse.LoadXml(resp); – Ben

回答

0

您可能需要設置是使用字符串控制的CultureInfo的,我不知道哪個屬性,但你應該把它分配給CultureInfo("fr-FR");

0

我不認爲有是XmlDocument類中用於加載和轉換編碼的方法。你可以嘗試以下,其從我給你的文檔System.Text.Encoding鏈接:

Encoding ascii = Encoding.ASCII; 
    Encoding unicode = Encoding.Unicode; 

    // Convert the string into a byte array. 
    byte[] unicodeBytes = unicode.GetBytes(unicodeString); 

    // Perform the conversion from one encoding to the other. 
    byte[] asciiBytes = Encoding.Convert(unicode, ascii, unicodeBytes); 

    // Convert the new byte[] into a char[] and then into a string. 
    char[] asciiChars = new char[ascii.GetCharCount(asciiBytes, 0, asciiBytes.Length)]; 
    ascii.GetChars(asciiBytes, 0, asciiBytes.Length, asciiChars, 0); 
    string asciiString = new string(asciiChars); 

你只需要改變它爲您所使用的編碼。你也可以檢查this question,它有很多答案可以幫助你。