2011-12-08 33 views
0

我正在使用json服務返回用法語寫的包含重音的字符串。事情是我沒有正確接收它們,因爲口音被符號'é'=>'?'所取代將未知編碼轉換爲utf-8

我猜問題是編碼,但我試圖將字符串轉換成每一個編碼成UTF-8

 var allTheEncoding = Encoding.GetEncodings(); 
     foreach (var encodingInfo in encoding) 
     { 
      var decoByte = encodingInfo.GetEncoding().GetBytes(str); 
      var utf8Bytes = Encoding.Convert(encodingInfo.GetEncoding(), utf8, decoByte); 
      str = utf8.GetString(utf8Bytes); 
     } 

我仍然得到了同樣的probleme 我這樣做對嗎?我該怎麼辦??

在此先感謝

+0

甚至沒有試圖編碼錯誤的東西一旦被轉換時。只有在接收到字節數組後才能接收和轉換,您可以指定編碼。 – BLUEPIXY

+0

你將不得不弄清源數據的編碼是什麼。也許你可以通過在這裏和那邊戳一下來憑經驗來弄明白,但是你不應該試圖編寫你的應用程序來即時確定源代碼。要麼找出源編碼並要求編碼永不偏離,要麼要求源向您指示它使用的編碼。例如,在HTTP中,字符編碼在Content-Type頭,charset字段中指示。在XML文檔中,字符編碼在XML聲明中指出。 – dthorpe

+0

感謝您的回答,但是我在源代碼中找到了答案,並且他們在結尾處發生了錯誤。從此他們修復了它,一切正常 – Rachid

回答

1

你馬正在關閉馬門後馬門。

不要str上,成爲str原始流上班,下班,因爲它是str創建,在錯誤躡手躡腳。