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

问题描述 投票:0回答:2

我的电脑里有日本环境。所以我需要一个程序将我的.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,但由于转换,文本变得不可读。这样做的正确方法是什么?

c# csv utf-8 ansi
2个回答
1
投票

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

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

Documentation:

此方法尝试根据字节顺序标记的存在自动检测文件的编码。可以检测到编码格式UTF-8和UTF-32(big-endian和little-endian)。

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


0
投票

StreamReader类可以支持使用编码读取文件

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

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

© www.soinside.com 2019 - 2024. All rights reserved.