Re: [問題] Big5 轉 UTF-8

作者: fo40225   2015-06-19 21:54:17
※ 引述《FT6034 (耐心等待)》之銘言:
: 事情是這樣發展的...
: 主程式是外國人針對某遊戲寫的,透過API取得聊天室訊息
: 原程式儲存資訊至 txt 檔,編碼是 UTF-8
: 輸入 "測試" , txt 檔裡頭記錄 "皜祈岫" ,所以我猜測 args.Message 是 BIG5
問題很簡單 原來的程式沒有問題 是因為那個txt沒有BOM所以記事本把檔案當作Big5讀取
現在你有兩種做法
1. 檔頭加上BOM 其他程式碼不變 通通不要帶編碼 這樣.NET預設使用UTF-8寫入檔案
var stream = new StreamWriter(_path, true);
var stream = new StreamWriter(_path, true, Encoding.UTF8);
這兩行是一樣的
2. 指定使用Big5輸出
var stream = new StreamWriter(_path, true, Encoding.GetEncoding(950));
這樣該檔案可以使用記事本正常讀取
作者: FT6034 (耐心等待)   2015-06-20 09:36:00
謝謝指教,「UTF-16怎麼輸出」我再研究看看@@"
作者: fo40225   2015-06-20 11:23:00
不要管UTF-16 那不是你該管的 你要做的是用最一開始會亂碼的原始碼 加上第二種解法就行了

Links booklink

Contact Us: admin [ a t ] ucptt.com