Я пытаюсь добавить значения в таблицу парадоксов с помощью c #.
Дело в том, что эта таблица содержит локализованные строки, для которых BDE требуется Langdriver ANSII850.
Я пытался использовать драйверы OLEDB и Odbc в .Net, но не могу записать правильные значения в свою базу данных. У меня всегда возникают проблемы с кодировкой.
Пример:
// ODBC Connection string (using string.Format for setting the path)
string connectionBase = @"Driver={{Microsoft Paradox Driver (*.db )}};DriverID=538;Fil=Paradox 5.X;DefaultDir={0};CollatingSequence=ASCII;";
// I tried to put the langdriver in the CollatingSequence parameter
string connectionBase = @"Driver={{Microsoft Paradox Driver (*.db )}};DriverID=538;Fil=Paradox 5.X;DefaultDir={0};CollatingSequence=ANSII850;";
// I tried the OleDb driver
string connectionBase = @"Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Paradox 5.x;"Data Source={0};";
Затем я пытаюсь вставить значение "çã á õõ", чтобы проверить. В зависимости от используемого драйвера, я получаю разные результаты, но окончательная строка никогда не кодируется правильно.
Отредактировано:
Наконец-то я нашел решение, но не идеальное:
- Я могу переключаться с langdriver на другой, вызывая внешний исполняемый файл, написанный на delphi. В этом случае я использую ANSII850.
- Затем я могу читать данные из моих таблиц парадоксов. Но я все еще не получаю свои данные в хорошем формате.
- Строки из таблиц также не кодируются с помощью кодовой страницы 850, попытка декодировать их с помощью инструментов .Net просто не работает
- Вместо этого я вручную отслеживаю специальные символы (которые не правильно читаются) и заменяю их правильными символами utf8.
- Для письма я делаю прямо противоположное.
Работает, но все равно не идеально.