2016-09-02 4 views
1

Я получил дамп базы данных Sybase ASE и восстановил его на своем сервере Sybase.Набор символов CP850 с Sybase ASE 15.7

Сервер базы данных набор символов: Cp850

Я пытался использовать Sybase dbisql (Interactive SQL GUI) для подключения к базе данных и выбрать из таблиц, которые содержат арабские данные, я обнаружил, что все арабские символы не в состоянии будет отображаться.

Также я получил ту же проблему при использовании jTDS для подключения к базе данных Sybase с использованием Talend Open Studio для интеграции данных.

Хотя я пытался использовать Power Builder 12 для подключения к одному серверу Sybase, и я могу читать арабские символы без какой-либо специальной настройки.

Я попытался использовать свойство «charSet» в соединении JDBC для jTDS, «charSet = Cp850; sendStringParametersAsUnicode = false».

Есть ли какие-либо объяснения по этому вопросу.

ответ

0

Я предполагаю, что вы имеете в виду «DBISQL», поскольку «dbisql» - это клиент Watcom (SQL Anywhere), который не может подключиться к серверу ASE. Во всяком случае, это проблема с преобразованием набора символов, поскольку другие клиенты, по-видимому, отображают ее правильно. Поэтому вам нужно определить флаги преобразования кодировки для DBISQL. Вы также можете использовать 'isql' с флагами -J, например, но когда вы запустите это из командной строки, символы, отличные от ASCII, могут отображаться некорректно (не из-за клиента, а из-за крышки терминала командной строки).

+0

Когда я использую DBISQL, я также указываю charSet cp850, но все равно не могу отображать арабские буквы. Power Builder - единственное приложение, которое мне удалось отобразить с арабскими символами. –

+0

Я думаю, что эта проблема как-то связана с подключением ODBC, Как powerbuilder, использующий ODBC-соединение, а не JDBC. Я попытаюсь создать соединение ODBC так же, как powerbuilder, чтобы подключиться к sybase, а затем использовать java odbc bridge для его использования. –

0

Будет ли cp850 работать на любом сервере или клиенте, если вы хотите арабский?

Для 8 битного набора символов, я думаю, вам нужно порядка сортировки на сервере, чтобы быть один из арабских, см:

http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc31654.1570/html/sag1/sag1501.htm

Тогда ваш клиент либо не должны иметь перевод, или один из арабских наборов символов группы 6, в зависимости от ситуации (CP 864, CP 1256, ISO 8859-6.) У них будет идентификатор для клиента, например cp864 или cp1256 или iso88596.

+0

Я попытался изменить SortOrder на сервере кодировок -США -P binary.srt cp1256 ISQL -СШ -Р sp_configure «SortOrder по умолчанию идентификатора», 50, «cp1256» , но до сих пор я могу читать только арабские данные только от Powerbuilder, и не смог прочитать арабские символы из DBISQL или любого приложения, используя jTDS или jConnect. –

+0

Сначала проверьте, что ваши арабские символы находятся в базе данных.Используйте bcp, чтобы выгрузить таблицу с арабскими символами в столбцах и использовать восьмеричный дамп «od -x» для их просмотра и убедиться, что вы видите (кодировки находятся в википедиях для cp1256 или ISO/IEC 8859-6, в зависимости от того, используя.) Также вы можете посмотреть, что в Word для Windows соответствующим образом настроена. –

+1

Тогда, если вы знаете, что арабские символы там правильные, либо не конвертируйте при чтении с сервера, либо только конвертируйте в набор символов, который также может выполнять арабские символы (я не знаю, как вы указываете no или некоторый набор символов преобразование для DBISQL или jTDS.) И наконец, что отображает символы? Вы должны быть уверены, что что бы это ни было (unix terminal, sql front end, editor, текстовый процессор), он способен отображать арабский язык и настроен на отображение набора символов, который вы используете. –

0

Эта проблема полностью решена путем подключения ODBC к Sybase. Мое решение: Я создаю ODBC-соединение в системных источниках данных sdn в Windows и использую это ODBC-соединение в JDBC-ODBC Bridge, у меня есть правильные символы. Также я попытался создать связанный сервер MS SQL Server с использованием этого соединения ODBC и получить данные с правильными символами. Спасибо за вас.