我需要寫一個文件的響應流。該流包含一個編碼頁面(iso-8859-1)。如何正確地將iso-8859-1轉換爲utf8?
這是我的代碼:
...
using (TextWriter writer = new StreamWriter(tmpFilePath))
{
using (TextReader reader = new StreamReader(answer, Encoding.GetEncoding("ISO-8859-1")))
{
string line = "";
while ((line = reader.ReadLine()) != null)
{
// try to decode
string decoded_line = decode(line);
writer.WriteLine(decoded_line);
}
}
}
...
string decode(string message)
{
string result = "";
Encoding iso = Encoding.GetEncoding("iso-8859-1");
Encoding utf8 = Encoding.UTF8;
byte[] isoBytes = iso.GetBytes(message);
byte[] utf8Bytes = Encoding.Convert(iso, utf8, isoBytes);
result = utf8.GetString(utf8Bytes);
return result;
}
的問題是解碼()不工作
我怎麼能轉換成ISO-8859-1正確UTF8?
UPDATE
我靠小提琴手獲取內容類型:
'message'的內容看起來不像是有效的ISO-8859-1 – 2012-03-02 22:10:30
刪除您的decode()方法,解碼和編碼已由StreamReader/Writer處理。如果仍然有問題,那麼您沒有正確猜測輸入文件的編碼。 – 2012-03-02 22:14:18