[c#] парсинг dbf, проблемы с кодировкой
внезапно открылось через Odbc о_О
byte[] toEncodeAsBytes = fromEncoding.GetBytes(input);Вот тут ошибка.
string - это Unicode-строка. encoding.GetBytes - это конвертация из юникодной строки в последовательность байт в указанной кодировке.
А твоя проблема - что уже строка неправильная: вероятно, она получилась посредством Encoding.UTF8.GetString(cp866EncodedStringAsByteArray).
Тебе, вероятно, надо было вот так сделать, ну просто на будущее.
byte[] sourceBytes = Encoding.UTF8.GetBytes(input); // восстанавливаем исходную последовательность байт.
string returnValue = Encoding.GetEncoding("cp866").GetString(sourceBytes);
да, этот косяк я потом тоже нашёл, в итоге через OleDb пустил
Оставить комментарий
Happysad
нужно распарсить dbf'ку, заявлено, что в ней DOS-кириллица (cp866 наверное)открываю через OleDb, но даже вот такая штука не спасает от ненормального отображения кириллицы:
сам я полный нуб и не знаю, что можно ещё сделать (может предварительная конвертация в другой формат поможет... хз)
*если что, то использую такой драйвер: