Чтение CSV-файла в DataTable - PullRequest
0 голосов
/ 22 июля 2011

Я кореец, и у меня проблема с импортом файла CSV в DataTable.

Я использовал этот код для импорта CSV-файла.

    public static DataTable ParseCSV(string path)
    {
        string filePath = Path.GetDirectoryName(path);

        string oledbConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties=\"text;HDR=Yes;FMT=Delimited\"";

        string csvFileName = Path.GetFileName(path);

        string sQuery = string.Format(" SELECT * FROM [{0}] ", csvFileName); 
        DataTable ds = null;

        OleDbDataAdapter adt = null;

        using (OleDbConnection con = new OleDbConnection(oledbConnectionString))
        {
            ds = new DataTable();
            adt = new OleDbDataAdapter(sQuery, con);
            adt.Fill(ds);
        }

        return ds;
    }

Очень хорошо работает, когда в файле csv нет корейского языка.

Однако, если CSV-файл содержит корейское слово, оно переводит корейское слово в какое-то странное слово.

Мне нужна твоя помощь.

Спасибо ~~~

Ответы [ 3 ]

1 голос
/ 22 июля 2011

Пожалуйста, попробуйте следующий парсер,

http://www.codeproject.com/KB/database/CsvReader.aspx
0 голосов
/ 09 августа 2012

Это случается со мной. и я нахожу, что файл, сохраненный в UTF-8, является проблемой. вам нужно сохранить файл как ANSI, используя notpad или что-либо еще. затем, если у вас все еще есть проблема, вам нужно добавить эту строку depand на нужный вам язык.

dataTable.Locale = CultureInfo.CurrentCulture;

или

dataTable.Locale = CultureInfo.GetCultureInfo(your culture);

вот коды для информации о культуре.

http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo%28v=vs.71%29.aspx

0 голосов
/ 22 июля 2011

Сохраните ваш CSV-файл в кодировке UTF-8.Это, скорее всего, решит вашу проблему.Вы можете использовать notepad ++, чтобы быстро преобразовать уже сохраненный файл в UTF-8, запустить импорт и посмотреть, работает ли он.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...