Подключаюсь к сторонней базе на Paradox из C#.
Подключение проходит, данные выбираются, но вот с кодировкой проблема.
Русские символы в данных отображаются "кракозябрами".
И что?
Я же написал, поиском я начитался этого вдоль и поперек, по ссылке на форум решения нет.
Поиском я уже пользовался.
Единственное, что почерпнул — убедился, что версия драйвера должна быть 4.х (39-й байт в файле = 09)
строки типа:
Здравствуйте, Danchik, Вы писали:
D>Здравствуйте, nFalcon, Вы писали:
D>[Skip]
F>>Пробовал и другие варианты. F>>Что-то упускаю, подскажите пожалуйста где?
D>CollatingSequence=International D>DataCodePage (OEM or ANSI or ANS)
D>Пробовали?
Только что решил эту проблему. Причина в том что ODBC драйвер думает что строки базы закодированы в 1252. Понял
это увидев советы по смене мапинга кодовой страницы 1252 на файл 1251 в реестре. Дальше элементарно:
String stringField = //Получение данных строковой ячейки через TableAdapter, DataSet или чему душе угодно. Естественно, данные в крякозябрах.
Encoding enc = Encoding.GetEncoding(1252);
Encoding enc2 = Encoding.GetEncoding(1251);
string result = enc2.GetString(enc.GetBytes(stringField)); //Здесь я очень обрадовался, т.к. значение строки было "Торты и пирожные"
F>Помогите с кодировкой.
F>Подключаюсь к сторонней базе на Paradox из C#. F>Подключение проходит, данные выбираются, но вот с кодировкой проблема. F>Русские символы в данных отображаются "кракозябрами".
F>Подключался по разному:
F>string _connectionString = @"Driver={Microsoft Paradox Driver (*.db )};collatingsequence=ASCII;DriverID=538;Fil=Paradox 4.X;DefaultDir=" + tbPath.Text + ";Dbq=" + tbPath.Text + ";"; F>OdbcConnection connection = new OdbcConnection(_connectionString); F>и т.д.
F>string strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pPath + ";Extended Properties=Paradox 4.x; Mode=Read|Write|Share Deny None;"; F>OleDbConnection oleConnection = new OleDbConnection(strConnection);
F>и т.д.
F>Пробовал и другие варианты. F>Что-то упускаю, подскажите пожалуйста где?