CSV文件中的字符串问题

时间:2014-03-20 20:13:13

标签: c# .net string encoding

我有一个应用程序从CSV文件中读取信息以将其写入数据库。但是一些角色(例如:ºç)出现问题Gravalos基础。有谁知道如何解决这个问题? 谢谢。

我正在使用这些代码行来读取CSV文件中的信息:

string directory = @"C:\test.csv";
StreamReader stream = new StreamReader(directory);
string line = "";
line = stream.ReadLine();
string[] column = line.Split(';');

3 个答案:

答案 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):

  • Encoding.Default for ANSI encoding基于当前的Windows代码页。
  • 用于ASCII编码的Encoding.ASCII。
  • 用于不同Unicode编码的Encoding.UTF *。

请注意,我将StreamReader放在using块中,以便在不再需要时将其处理。