我的PC中有日语环境。因此,我需要一个程序将.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,但是由于转换,该文本变得不可读。正确的方法是什么?
答案 0 :(得分:1)
我假设未正确检测到输入文件编码,因此您应该定义它
string st = File.ReadAllText("C:\\Users\\user\\Desktop\\train1.csv", Encoding.Default); //ANSI
此方法尝试根据字节顺序标记的存在自动检测文件的编码。可以检测到UTF-8和UTF-32编码格式(大端和小端)。
读取时使用ReadAllText(String,Encoding)方法重载 可能包含导入文本的文件,因为无法识别 字符可能无法正确读取。
答案 1 :(得分:0)
有StreamReader类可以支持读取具有编码的文件
StreamReader st = new StreamReader("C:\\Users\\user\\Desktop\\train1.csv",
System.Text.Encoding.ASCII);
之后,您可以根据StreamWriter
将数据写入文件