У меня есть следующий фрагмент кода. Это используется для импорта файлов CSV, которые поставляются нам из разных мест по всему миру. Формат файла тот же, и на самом деле довольно простой: имя, фамилия, адрес электронной почты и некоторые даты, а также один или два других текстовых столбца. У меня проблема в том, что некоторые неанглийские символы, русские, немецкие, испанские символы импортируются неправильно. Когда я смотрю на содержимое файла в DataTable, он выдает, например, «ÐÐ½Ð´Ñ € ей», когда он должен выдавать «Андрей» и так далее. Я очень долго искал и, похоже, не могу найти решения. Если я сохраню файл в xls, а затем импортирую его, изменив строку подключения, конечно, она будет работать нормально, поэтому кажется, что реактивный двигатель может обрабатывать символы Юникода. Любая помощь будет оценена. Если это имеет значение, я использую VS 2010 на Windows 7 64 бит. Заранее спасибо!
string filename = @"C:\Data\Test.csv";
string connString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Data;Extended Properties=""text;CharacterSet=UNICODE;HDR=Yes;FMT=Delimited"";";
string commString = string.Format("Select * from {0}", filename);
DataTable dt = new DataTable();
using (OleDbConnection connection = new OleDbConnection(connString))
{
connection.Open();
using (OleDbDataAdapter da = new OleDbDataAdapter(commString, connection))
{
da.Fill(dt);
}
}