我的代码是:
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 :(得分:2)
您需要使用与编写textfile1.txt
时相同的编码。默认情况下,UTF-8用于在File.ReadLines
中读取。
如果您在编写时使用过ISO-8859-2,则需要指定它:
File.ReadLines("textfile1.txt", Encoding.GetEncoding("ISO-8859-2"))