![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| KostenkoSergey |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 290 Регистрация: 31.10.2005 Где: Kiev Репутация: 3 Всего: 8 |
Решил завести новый топик.
Вкратце опишу проблему - переносим WebSphere Application Server c винды на линух, со старта вылез трабл описанный тут: http://forum.vingrad.ru/forum/topic-176735...1%82%D1%8B.html Его удалось побороть изменив локаль на export LC_ALL=ru_RU.utf-8 - с датой помогло, но вот русские символы из базы отображаются крокозяблами. Использую thin оракл 10 Можно ли как то указать настройки относительно кодировки пулу именно для thin-драйвера ... Или что его делать ? Это сообщение отредактировал(а) KostenkoSergey - 18.10.2007, 10:34 |
|||
|
||||
| mbasil |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 399 Регистрация: 4.5.2007 Где: Москва Репутация: 9 Всего: 13 |
По-моему надо проверить, установлен ли русский язык в ОС.
То есть в Java Locale l = Locale.getDefault(); System.out.println( l.getDisplayLanguage() + " <> " + l.getDisplayCountry() + " <> " + l.getLanguage()); На худой конец можно при старте приложения "сунуть": Locale.setDefault(...); Можно в инициализационном файле Oracle прописать параметр NLS_LANG Вообще непонятно Вы мигрировали только сервер приложений или и сервер базы данных тоже. И какой вообще charset в базе. По хорошему, при использованн UTF8 лучше и в базе аналогичный charset, чтобы не делать преобразований. Для простоты можно использовать столбцы типа NVARCHAR2, NCLOB, NCHAR. Однако если база уже есть, делать нечего надо обеспечить преобразование. |
|||
|
||||
| mbasil |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 399 Регистрация: 4.5.2007 Где: Москва Репутация: 9 Всего: 13 |
Порывшись в документации
http://download.oracle.com/docs/cd/B19306_...s.htm#sthref455 нашел только два параметра настройки драйвера defaultNchar - The value TRUE causes the default mode for all character data columns to be NCHAR. fixedString - The value TRUE causes JDBC to use FIXED CHAR semantics when setObject is called with a String argument. By default, JDBC uses VARCHAR semantics. The difference is in blank padding. By default, there is no blank padding. For example, 'a' does not equal 'a ' in a CHAR(4) unless fixedString is TRUE. которые относятся к настройкам, связанным с хранением символов. И оба в таком случае не помогут. |
|||
|
||||
| KostenkoSergey |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 290 Регистрация: 31.10.2005 Где: Kiev Репутация: 3 Всего: 8 |
По-моему надо проверить, установлен ли русский язык в ОС.
Таки да, просмотрел (locale -a|grep RU) - ru_RU.utf и koi8. Происталил
Всё заработало. Отсюда вывод про ограничения jdbc thin драйвера. Так как каких либо параметров типа чарсет для пула соединений я не нашёл (мож кто видел?), то скорее всего драйвера "читают" в локальной кодировке. Но блин тогда получается, что локальная кодировка должна быть такой же как и кодировка СУБД - а это как то не правильно |
|||
|
||||
| mbasil |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 399 Регистрация: 4.5.2007 Где: Москва Репутация: 9 Всего: 13 |
1 Не такая же, а преобразуемая. То есть сеанс Java в рамках JVM лезет в ОС и смотрит какой основной язык там установлен, устанавливает соответствующую локаль по умолчанию, а JDBC драйвер пытается выполнять все преобразования charset'ов в соответствии с этой локалью.
2. В конце концов как я писал можно выполнить Locale.setDefault(...); 3. То есть они хотели как лучше. Например для предоставления пользователю соответствующего установленному языку ResourceBundle. А получилось как всегда. |
|||
|
||||
| KostenkoSergey |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 290 Регистрация: 31.10.2005 Где: Kiev Репутация: 3 Всего: 8 |
Выполнил
Помогло, но не до конца. Дата и время стало отображаться правильно, а вот кодировку это никак не затронуло :( Её пока что меняю в самой ОС (export LANG=ru_RU.CP1251) , а вот как задать из кода, не нашёл :( |
||||
|
|||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |