Чтение файлов Excel с помощью OleDb или ExcelDataReader возвращает специальные символы, закодированные неправильно - PullRequest
0 голосов
/ 27 декабря 2011

Мне нужно прочитать двоичный файл EXCEL (xls) в C #.

В основном это работает, но у меня проблемы с неправильно закодированными символами (например, немецкие умляуты).

Есть ли способ указать кодировку? Есть ли в файлах Excel что-то вроде кодировки?

Строка в файле Excel:

Лидия Хоммерл

При чтении с Jet или EDR я получаю:

Лидия Хммерль

Я пробовал OleDb и Excel Data Reader проект.

Вот код, который я использую, чтобы открыть и прочитать файл:

var connectionString =
            string.Format("Provider=Microsoft.Jet.OLEDB.4.0; data source={0};
                          Extended Properties=\"Excel 8.0;HDR=no\";", filePath);

var adapter = new OleDbDataAdapter(
          "SELECT * FROM [Webshop orders$]", connectionString);

var ds = new DataSet();     
adapter.Fill(ds, "Orders");
var data = ds.Tables["Orders"].AsEnumerable();
foreach (var row in data)
{
    var str = Convert.ToString(row[0]);

1 Ответ

0 голосов
/ 27 декабря 2011

Unicode с C #

Есть еще много людей, которые не понимают разницу между двоичным и текстовым, или знают, что такое кодировка символов и т. Д. Это для этих людейчто эта страница была написана.В нем упоминается несколько продвинутых тем, но только для того, чтобы ознакомить читателя с их существованием, а не дать много указаний по теме.

...