将.csv(ANSI)转换为.csv(UTF-8)



我的电脑里有一个日语环境。所以我需要一个程序将我的.csv ANSI 转换为 .csv UTF-8。我尝试使用此代码:

string st = File.ReadAllText("C:\Users\user\Desktop\train1.csv");            
System.IO.File.WriteAllText("C:\Users\user\Desktop\train2.csv",st.ToString(), Encoding.UTF8); 

已成功创建文件 train2.csv,但是,由于转换,文本变得不可读。正确的方法是什么?

我假设输入文件编码未正确检测到,因此您应该定义它

string st = File.ReadAllText("C:\Users\user\Desktop\train1.csv", Encoding.Default); //ANSI

文档:

此方法尝试根据是否存在字节顺序标记自动检测文件的编码。可以检测编码格式 UTF-8 和 UTF-32(大端和小端(。

读取时使用 ReadAllText(字符串,编码(方法重载 可能包含导入文本的文件,因为无法识别 字符可能无法正确读取。

有 StreamReader 类可以支持读取带有编码的文件

StreamReader st = new StreamReader("C:\Users\user\Desktop\train1.csv", 
System.Text.Encoding.ASCII);

之后,您可以基于StreamWriter将数据写入文件

最新更新