2015-11-04 42 views
0

我的代碼是:編碼與ISO-8859-2

var previousLines = new HashSet<string>(); 
File.WriteAllLines("D:\\textfile2.txt", 
        File.ReadLines("textfile1.txt").Where(line => previousLines.Add(line)), 
        Encoding.GetEncoding("ISO-8859-2")); 

我有兩個文本文件。在textfile1.txt我有字母像ł,ą,ę等 我想重寫所有行沒有重複的文件textfile2.txt,但編碼不工作,因爲我的預期。它吃一些字母,如ł,ą,ę。這是爲什麼發生?

+0

嘗試'Encoding.UTF8'代替。 – cubrr

+1

你用什麼編碼來編寫'textfile1.txt'?默認情況下,UTF-8用於閱讀。如果您在編寫它時使用了ISO-8859-2,則需要指定它:'File.ReadLines(「textfile1.txt」,Encoding.GetEncoding(「ISO-8859-2」))' – cubrr

+0

@ cubrr我只是將文本從excel複製到.txt文件。那裏使用的詞語有波蘭語。我只是想重寫它沒有重複,但即使沒有重複,我有大約800行文字錯誤...但你的答案很好!非常感謝!這將節省很多時間 – Marox

回答

2

您需要使用與編寫textfile1.txt時相同的編碼。默認情況下,使用UTF-8讀取File.ReadLines

如果你已經使用ISO-8859-2,當你寫的,你需要指定它:

File.ReadLines("textfile1.txt", Encoding.GetEncoding("ISO-8859-2"))