![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| mastanik |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 15.6.2006 Репутация: нет Всего: нет |
Здравствуйте,
такая проблема, никак не получается внести русский текст в Оракл 8. в JSP пишу:
в Оракле:
|
||||
|
|||||
| jsa |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 704 Регистрация: 19.1.2006 Где: Новосибирск Репутация: 2 Всего: 20 |
а подробнее?
-------------------- Все мы, на перине с песней, строим небо на земле © Ю. Шевчук |
|||
|
||||
| mastanik |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 15.6.2006 Репутация: нет Всего: нет |
при занесении данных в базе отображаются вопросы.
менял необходимые поля с VARCHAR2 на NVARCHAR2 - Оракл ругается ошибкой ERROR at line 1: ORA-12704: character set mismatch |
|||
|
||||
| y3u |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 440 Регистрация: 9.9.2006 Где: Москва Репутация: 7 Всего: 13 |
как именно ты данные пишешь в БД? Какие параметры у коннектора ты используешь?
-------------------- В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах |
|||
|
||||
| DEER |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 749 Регистрация: 12.4.2005 Где: г. Рязань Репутация: нет Всего: 13 |
ИМХО. везде юзай cp121 -------------------- |
|||
|
||||
| mastanik |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 15.6.2006 Репутация: нет Всего: нет |
система по всей вероятности будет использоваться не только в русскоязычных странах, поэтому хочется уникодом пользоваться.
пишу так
|
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 5 Всего: 538 |
1. Раз в базе кодировка ISO-8859-5, то юникод тебе только в NVARCHAR2 светит.
2. Определи где ошибка: накидай маленькое приложение которое будет соединяться с БД и писать туда текс в поля VARCHAR2 на NVARCHAR2. Если запишется нормально надо разбираться с JSP, что там не так, иначе смотреть параметры соединения с базой. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| 3x3 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 261 Регистрация: 17.9.2006 Репутация: 5 Всего: 8 |
На клиенте (т.е. где приложение, общающееся с базой) - какой NLS_LANG в окружении стоит? Какая версия базы? Если вы делаете те же самые запросы из sqlplus - что происходит? -------------------- Зачем платить больше, когда можно заплатить дважды? |
|||
|
||||
| mastanik |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 15.6.2006 Репутация: нет Всего: нет |
хмм, где посмотреть NLS_LANG клиента? (допустим это SQL Worksheet) БД - Oracle 8.
делаю так, в поле с типом NVARCHAR2 вношу данные:
выдает:
если поле типа VARCHAR2, то заносятся вопросы. |
||||
|
|||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 16 Всего: 151 |
На винде - в реестре. HKEY_LOCAL_MACHINE --> Software --> Oracle. -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
| mastanik |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 15.6.2006 Репутация: нет Всего: нет |
хм, NLS_LANG = N/A
|
|||
|
||||
| 3x3 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 261 Регистрация: 17.9.2006 Репутация: 5 Всего: 8 |
Ну и поставьте там что-нить типа "AMERICAN_AMERICA.CL8MSWIN1251", главное что бы он понял, что русскими буквами кормят, а не какими-нибудь там -------------------- Зачем платить больше, когда можно заплатить дважды? |
|||
|
||||
| jsa |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 704 Регистрация: 19.1.2006 Где: Новосибирск Репутация: 2 Всего: 20 |
откуда дровишки?
чем смотришь, уверен что в базе вопросы, а может только на клиенте? -------------------- Все мы, на перине с песней, строим небо на земле © Ю. Шевчук |
||||||
|
|||||||
| mastanik |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 15.6.2006 Репутация: нет Всего: нет |
прописал в реестре
AMERICAN_AMERICA.CL8MSWIN1251 те же вопросы. |
|||
|
||||
| 3x3 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 261 Регистрация: 17.9.2006 Репутация: 5 Всего: 8 |
Боюсь, что всё может оказаться ещё хитрее. Во-первых ваш thin JDBC драйвер может не поддерживать русские кодировки. Т.е. будь у вас в базе 1251 и на клиенте 1251 - то он бы ещё может и гнал бы буквы напрямую без конверсии а так - кто его знает. Это касается именно thin-драйвера, который ходит в базу напрямую и не требует установки клиента. Скачайте с oracle.com свежую версию, там у них к JDBC пакет для интернационализации приложен.
Но для чистоты эксперимента попробуйте неск. вещей: - выставить NLS_LANG как переменную окружения процесса, хотя лучше забивать в параметры самому соединению thin может вообще не ориентироваться на системные настройки: мало ли что там у юзера, загрузившего апплет, понастроено. - использовать не Ср1251, а UTF8 кодировку - убедитесь, что для сессии выставлена правильная кодировка: select * from nls_session_parameters (этот селект должен быть сделан из проблемной сессии) - отказаться от thin JDBC в пользу просто JDBC, который будет лазать в базу через её родной OCI. На сервере-то это даже и лучше. Но это путь для слабых духом. PS Попробую поколбасить сегодня ночью thin JDBC от десятки, только не факт, что удастся воспроизвести проблему, у меня там в базе NLS_CHARACTERSET=UTF8 забит, да и вообще она десятка экспресс без поддержки российской локализации - когда они говорят "Европа", то, видимо подразумевают "Западная Европа". Да, вот ещё страничка, на которой много полезного про Oracle JDBC-драйвера http://www.oracle.com/technology/tech/java...c_faq.htm#34_03 Это сообщение отредактировал(а) 3x3 - 21.9.2006, 13:08 -------------------- Зачем платить больше, когда можно заплатить дважды? |
|||
|
||||
![]()
|
| Правила форума "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. |