我有一個包含字母ø
的文件。當我用這個代碼File.ReadLines(filePath)
從它讀取時,我得到了一個問號而不是它。閱讀文件時的C#編碼
當我添加像這樣的編碼File.ReadLines(filePath, Encoding.GetEncoding(1252))
我得到ø
字符。
但默認編碼已被設置爲1252
,財產Encoding.Default.CodePage
返回1252
那麼,爲什麼我必須指定編碼爲1252
一邊讀書,當默認一個已被設置爲1252
?
還有一個問題,如果文件是Unicode,C#會識別它的格式,或者我必須指定Unicode編碼?
File.ReadLines默認使用utf8進行編碼 –
使用傳統的8位代碼頁編碼(如1252)是上個世紀的做法。你只需要停止這樣做,今天沒有剩下的理由不使用utf-8。正如你發現的那樣,File.ReadLines()默認爲Encoding.UTF8。刪除文件或使用文本編輯器重新保存文件。記事本已經足夠好了,在SaveAs對話框上編碼組合框。 –
寫入文件時是否也使用UTF-8默認值? – Aleksa