我的电脑里有日本环境。所以我需要一个程序将我的.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(big-endian和little-endian)。
读取可能包含导入文本的文件时,请使用ReadAllText(String,Encoding)方法重载,因为可能无法正确读取无法识别的字符。
有StreamReader类可以支持使用编码读取文件
StreamReader st = new StreamReader("C:\\Users\\user\\Desktop\\train1.csv",
System.Text.Encoding.ASCII);
之后,您可以根据StreamWriter将数据写入文件