С уважением,
Андрей Коновалов.
Все зависит от кодировки базы, и кодировки на стороне клиента
попробуй поставить у себя (если клиент под виндой) переменную окружения
NLS_LANG=RUSSIAN_CIS.CL8MSWIN1251
Удачи,
Тема
Маленькая поправки: от кодировке на стороне базы, имхо, ничего не зависит.
Оракл сам перекодирует из одной кодировки в другую в соответствии с
кодировка на клиенте и серевере.
Зависит от кодировки клиента. Если клиент виндвз, то надо выставлять не
переменную окружения, а найти в реестре все вхождения NLS_LANG и поменять
ее. Кажется в предыдущем письме правильные значения указаны.
Леонид.
: Маленькая поправки: от кодировке на стороне базы, имхо, ничего не зависит.
А если у базы семибитная кодировка, то что увидит клиент с восьмибиткой?
: Оракл сам перекодирует из одной кодировки в другую в соответствии с
: кодировка на клиенте и серевере.
: Зависит от кодировки клиента. Если клиент виндвз, то надо выставлять не
: переменную окружения, а найти в реестре все вхождения NLS_LANG и поменять
: ее. Кажется в предыдущем письме правильные значения указаны.
У меня виндовый sqlplus заговорил по-русски даже без изменений в регистрах,
но я согласен, для уверенности лучше поменять NLS_LANG в регистрах тоже.
Тема
Я себе поставил Персональный Оракл 8.0.3 и имею теже проблемы.
Так вот в реестре стоит RUSSIAN_CIS.CL8MSWIN1251 (в БД тоже.)
Русский текст (1251 через SQLPlus) нормально попадает в БД и обратно.
У SQLPlus интерфейс в кракозябах. Сообщения он сервера видно нормально.
Все консольные утилиты в кракозябах.
В реестр ставим RUSSIAN_CIS.RU8PC866.
У plus80 - все ok.
Русский текст (866 через plus80) нормально попадает в БД и обратно.
Все (или по крайней мере SVRMGR30.EXE и SQLLDR80.EXE )
остальные консольные утилиты в кракозябах.
В принципе можно и дальше перебирать - у Oracle русских кодировок много.....
НО как же сделать правильно ? Так чтоб везде показывало ?
И чтоб в базе текст зранился в 1251 (RUSSIAN_CIS.CL8MSWIN1251) ?
Кто знает ?
Спасибо.
Владимир.
> Все зависит от кодировки базы, и кодировки на стороне клиента
> попробуй поставить у себя (если клиент под виндой) переменную окружения
> NLS_LANG=RUSSIAN_CIS.CL8MSWIN1251
Здравствуйте!
У меня прописано в oracle.ini NLS_LANG=RUSSIAN.RU8PC866.
Это не верно?
С уважением,
Деев Илья.
Во-первых, по-моему желательно еще указать территорию (у нас это CIS --
СНГ), во-вторых RU8PC866 -- это досовская кодировка, и в виндах будут всякие
чертики, так что надо ставить CL8MSWIN1251 для виндовых клиентов, хотя
досовские утилиты в этом случае пишут абракадабру :(((
Там в Оракле они похоже и не подозревают, что у нас две кодировки приходится
использовать одновременно...
Тема
Vladimir Petrov <v...@rnivc.kis.ru> сообщил в новостях
> Русский текст (1251 через SQLPlus) нормально попадает в БД и обратно.
> У SQLPlus интерфейс в кракозябах. Сообщения он сервера видно нормально.
> Все консольные утилиты в кракозябах.
> В реестр ставим RUSSIAN_CIS.RU8PC866.
> У plus80 - все ok.
> Русский текст (866 через plus80) нормально попадает в БД и обратно.
> Все (или по крайней мере SVRMGR30.EXE и SQLLDR80.EXE )
> остальные консольные утилиты в кракозябах.
> В принципе можно и дальше перебирать - у Oracle русских кодировок
много.....
Не проще ли в реестре поставить NLS_LANG=American_CIS.CL8MSWIN1251 ?
> Владимир.
>
--
Best regards.
Bezrukov Sergey.
Billing Centre of Moscow Long Distance & International Telephone JSC.
e-mail : se...@soi3.mmtel.ru http://soi3.mmtel.ru
Tel. (095) 3396700 Fax. (095) 3370001
Спасибо.
Так нормально.
Владимир.
И поиметь проблемы с неправильной сортировкой русских букв и неверной
работой UPPER()
подсказка - сделай
select upper('чюя') from dual
Это уже проходило в эхе - база должна быть в cl8mswin1251.
На клиенте в реестре так же. Если интерфейс SQL Plus (или еще чего) в
"крякозяблах" - либо искать правильный NLB файл либо отказаться от русского
интерфейса установкой
NLS_LANG=AMERICAN_AMERICA.cl8mswin1251
С консольными приложениями разговор особый. Они считают, что являются
виндовыми приложениями (кодировка 1251), а сами выводят в ДОСе (866).
Как лечить - либо дать текстовому окну нормальный фонт, либо найти
работающую версию консольной программы
--
С многоуважением
Антон Демидов
SQL> run;
1* select upper('зоп') from dual
UPP
---
ЗОП
SQL> select upper('чюя') from dual;
UPP
---
ЧЮЯ
А что должно быть ? Ж, Х ? :)
Я себе поставил:
NLS_LANG = American_CIS.CL8MSWIN1251
American - интерфейс клиента и сообщения сервера теперь на английском.
CIS - формат зависящих от страны вещей типа даты я хочу правильный.
CL8MSWIN1251 - БД создана в 1251 и данные я туда заношу в 1251.
Вроде все так.
<cute>
--
> С многоуважением
> Антон Демидов
Владимир.