C# и Paradox, получение данных в правильной кодировке
От: nFalcon  
Дата: 27.01.11 09:02
Оценка:
Помогите с кодировкой.

Подключаюсь к сторонней базе на Paradox из C#.
Подключение проходит, данные выбираются, но вот с кодировкой проблема.
Русские символы в данных отображаются "кракозябрами".

Подключался по разному:

string _connectionString = @"Driver={Microsoft Paradox Driver (*.db )};collatingsequence=ASCII;DriverID=538;Fil=Paradox 4.X;DefaultDir=" + tbPath.Text + ";Dbq=" + tbPath.Text + ";";
OdbcConnection connection = new OdbcConnection(_connectionString);
и т.д.

string strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pPath + ";Extended Properties=Paradox 4.x; Mode=Read|Write|Share Deny None;";
OleDbConnection oleConnection = new OleDbConnection(strConnection);

и т.д.

Пробовал и другие варианты.
Что-то упускаю, подскажите пожалуйста где?


P.S. В поиск просьба не слать, обчитался уже.
c# paradox кодировка
Re: C# и Paradox, получение данных в правильной кодировке
От: _FRED_ Черногория
Дата: 27.01.11 12:18
Оценка:
Здравствуйте, nFalcon, Вы писали:

F>Подключаюсь к сторонней базе на Paradox из C#. …

F>Русские символы в данных отображаются "кракозябрами".

Google => Иероглифы в Paradox
Автор: Alex
Дата: 08.10.02
Help will always be given at Hogwarts to those who ask for it.
Re[2]: C# и Paradox, получение данных в правильной кодировке
От: nFalcon  
Дата: 27.01.11 16:07
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>Google => Иероглифы в Paradox
Автор: Alex
Дата: 08.10.02


И что?
Я же написал, поиском я начитался этого вдоль и поперек, по ссылке на форум решения нет.
Поиском я уже пользовался.
Единственное, что почерпнул — убедился, что версия драйвера должна быть 4.х (39-й байт в файле = 09)
строки типа:

"LANGDRIVER=Pdox ANSI Cyrillic;"
"collatingsequence=International;"
"collatingsequence=ASCII;"

ничего не дают.
Re: C# и Paradox, получение данных в правильной кодировке
От: Danchik Украина  
Дата: 28.01.11 07:00
Оценка:
Здравствуйте, nFalcon, Вы писали:

[Skip]

F>Пробовал и другие варианты.

F>Что-то упускаю, подскажите пожалуйста где?

CollatingSequence=International
DataCodePage (OEM or ANSI or ANS)

Пробовали?
Re[2]: C# и Paradox, получение данных в правильной кодировке
От: nFalcon  
Дата: 28.01.11 08:02
Оценка:
Здравствуйте, Danchik, Вы писали:

D>Здравствуйте, nFalcon, Вы писали:


D>[Skip]


F>>Пробовал и другие варианты.

F>>Что-то упускаю, подскажите пожалуйста где?

D>CollatingSequence=International

D>DataCodePage (OEM or ANSI or ANS)

D>Пробовали?


Попробовал так:

string _connectionString = @"Driver={Microsoft Paradox Driver (*.db )};CollatingSequence=International;DataCodePage=OEM;Fil=Paradox 4.X;defaultdir=" + pathToBase;

результат тот же.
Может что-то нужно выставить в BDE или DSN хитрый создать...!?

Просмотрщики сторонние, данные видят без проблем.
Re: C# и Paradox, получение данных в правильной кодировке
От: kent44  
Дата: 12.12.11 16:19
Оценка:
Здравствуйте, nFalcon, Вы писали:

Только что решил эту проблему. Причина в том что 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>Что-то упускаю, подскажите пожалуйста где?


F>P.S. В поиск просьба не слать, обчитался уже.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.