我有一个应用程序从CSV文件中读取信息以将其写入数据库。但是一些角色(例如:ºç)出现问题Gravalos基础。有谁知道如何解决这个问题? 谢谢。
我正在使用这些代码行来读取CSV文件中的信息:
string directory = @"C:\test.csv";
StreamReader stream = new StreamReader(directory);
string line = "";
line = stream.ReadLine();
string[] column = line.Split(';');
答案 0 :(得分:2)
StreamReader
默认为UTF8编码,您的文件使用不同的编码。尝试像这样指定它......
var encoding = Encoding.UTF16;
StreamReader stream = new StreamReader(directory, encoding);
请注意,您需要知道该文件的编码方式才能正确读取它...我只是猜测它可能是UTF16但显然我不知道它是什么。
答案 1 :(得分:1)
您应该在读取文件时指定正确的编码。默认值为UTF-8。您的文件可能使用不同的编码进行编码。
答案 2 :(得分:0)
这很可能与读取文件时使用的编码有关。默认情况下,UTF8被假定为编码。为了正确读取文件,您需要指定正确的编码,例如:
string directory = @"C:\test.csv";
using(StreamReader stream = new StreamReader(directory, Encoding.ASCII))
{
string line = "";
line = stream.ReadLine();
string[] column = line.Split(';');
}
您可以尝试以下编码(有关完整列表,请参阅此link):
请注意,我将StreamReader放在using
块中,以便在不再需要时将其处理。