|
|
|
Правильная кодировка данных
|
|||
|---|---|---|---|
|
#18+
ОС - WINNT 4.0 Версия Оракл'а - 8.1.7 Есть БД у которой чарсет CL8MSWIN1251 а регион AMERICAN_AMERICA Этот параметр ("AMERICAN_AMERICA.CL8MSWIN1251") прописан во всех ключах реестра. И все равно при этом вместо нормальной кодировки получаю в данных "??????" Чем лечится? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2002, 13:20 |
|
||
|
Правильная кодировка данных
|
|||
|---|---|---|---|
|
#18+
А в базу данные правильно залиты? Проверить просто: вставить пару строчек в таблицу и затем их прочесть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2002, 13:51 |
|
||
|
Правильная кодировка данных
|
|||
|---|---|---|---|
|
#18+
Charset базы данных определяется при помощи: select * from nls_database_parameters; Кроме того, важно, что прописано на клиенте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2002, 13:58 |
|
||
|
Правильная кодировка данных
|
|||
|---|---|---|---|
|
#18+
Я заливал из дампа. В кодировке win из-под Far'a данные смотрятся нормально. И , кстати, все кнопки интерфейса выглядят нормально (по русски) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2002, 13:59 |
|
||
|
Правильная кодировка данных
|
|||
|---|---|---|---|
|
#18+
Чарсет я так и смотрел а сервер и клиент у меня на одной машине. И в реестре я правил все встретившиеся параметры NLS_LANG ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2002, 14:01 |
|
||
|
Правильная кодировка данных
|
|||
|---|---|---|---|
|
#18+
А какой charset был у базы, из которой делался дамп? Если он несовпадает с текущим, могут быть глюки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2002, 15:08 |
|
||
|
Правильная кодировка данных
|
|||
|---|---|---|---|
|
#18+
Всем спасибо вопрос снят ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2002, 09:38 |
|
||
|
Правильная кодировка данных
|
|||
|---|---|---|---|
|
#18+
Кодировка, в какой сделан дамп, храниться в dmp-файле в 3-м байте. Это лекго проверить, сделав 2 одинаковых дампа но с разной клиентской кодировкой и сравнив файлы. У меня был случай, когда дамп, сделанный из-по WE8ISO8859P1 в БД и WE8ISO8859P1 на клиенте содержал русские символы!!!, причем в кодировке win1251!!!. Естественно, попытки выполнить импорт приводили к ???????????????? вместо русских символов, какая бы кодировка не стояла в БД и на клиенте. Как это получилось у тех, кто делал экспорт - для меня загадка. БД у меня под CL8MSWIN1251, клиент тоже. Я поставил в дампе в 3-м байте 0xAB - это как раз CL8MSWIN1251, и сделал импорт. Все прошло на ура. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2002, 14:47 |
|
||
|
Правильная кодировка данных
|
|||
|---|---|---|---|
|
#18+
2nvasunin: А как вы узнали, что 0xAB соответствует CL8MSWIN1251? Где можно посмотреть такие коды для других кодировок? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2002, 15:23 |
|
||
|
Правильная кодировка данных
|
|||
|---|---|---|---|
|
#18+
2nvasunin про WE8ISO8859P1 : Наверное, в ДОС-сессии перед экспортом было SET NLS_LANG=....CL8MSWIN1251 и экспорт НЕ директ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2002, 16:58 |
|
||
|
Правильная кодировка данных
|
|||
|---|---|---|---|
|
#18+
//А как вы узнали, что 0xAB соответствует CL8MSWIN1251? Где можно посмотреть такие коды для других кодировок? Очень просто. Установил на клиенте нужную кодировку, сделал экспорт, посмотрел 3-й байт. Установите NLS_LANG=....CL8MSWIN1251, получите в третьем байте 0xAB, установите другую кодировку, получите в 3-м байте значение, соответствующее этой кодировке. А где их посмотреть - не знаю. Скорее всего, это нигде не документированная информация. //про WE8ISO8859P1 : Наверное, в ДОС-сессии перед экспортом было SET NLS_LANG=....CL8MSWIN1251 и экспорт НЕ директ Не знаю.... Если бы было SET NLS_LANG=....CL8MSWIN1251, то и при экспорте бы данные конвертировались из ISO в MSWIN, и при этом в файле экспорта тот самый 3-й байт был бы про MSWIN. А он был про ISO, да и imp писал, что экспорт, мол, был сделан в WE8ISO8859P1, а на клиенте, мол, стоит CL8MSWIN1251, т.ч. при импорте будет выполнена перекодировка. Как при выполнении экспорта под WE8ISO8859P1 в дмп-файл попали русские символы (их вообще в этой кодировке не должно быть), да и еще в виндовой кодировке - для меня загадка! Более того - у них (у кого я брал дмп-файл) в БД и на клиенте стоит кодировка WE8ISO8859P1. Как они умудряются при этом иметь русские символы - я не понимаю! Я пробовал у себя создать БД в этой кодировке - сразу после инсёрта все русские символы становятся ????????, и это понятно. Как работают они в этой кодировке - не понял. Впрочем...., я их БД вживую не видел, имел только дмп-файл, копию HKLM\SW\Oracle с клиентской ПК и устное заверение, что везде стоит кодировка WE8ISO8859P1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2002, 11:34 |
|
||
|
Правильная кодировка данных
|
|||
|---|---|---|---|
|
#18+
2nvasunin Да, загадочно... Но в WE8ISO8859P1 Вы, кстати, почти без проблем сможете работать с русским, Ессно при соответствующих записях реестра. Проблемы будут с сортировкой по некоторым символам (нифига себе без проблем ;-) ) и их отображению. Вроде "Э", "Я" в каком-то регистре, "Ы", не помню точно - то были далекие времена незнания CREATE DATABASE ... CHARACTER SET = ... :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2002, 11:55 |
|
||
|
Правильная кодировка данных
|
|||
|---|---|---|---|
|
#18+
2ora600 //Но в WE8ISO8859P1 Вы, кстати, почти без проблем сможете работать с русским, Ессно при соответствующих записях реестра В смысле, если на клиенте будет нормальная русская кодировка, а на сервере WE8ISO8859P1? Честно говоря, я так не пробовал. По идее, должно сработать, т.к. кодировка WE8ISO8859P1 - восьмибитная. Штука в том, что у них и на клиенте WE8ISO8859P1. Чудеса.... Ну да ладно, бог с ним. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2002, 12:03 |
|
||
|
Правильная кодировка данных
|
|||
|---|---|---|---|
|
#18+
2Noname: 2nvasunin: >А как вы узнали, что 0xAB соответствует CL8MSWIN1251?> Где можно посмотреть такие коды для других кодировок? SELECT NLS_CHARSET_ID('CL8MSWIN1251') FROM DUAL ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2002, 10:21 |
|
||
|
Правильная кодировка данных
|
|||
|---|---|---|---|
|
#18+
С русским языком в кодировке WE8ISO8859P1 особых проблем нет. Я и сейчас ее использую на Oracle под WinNT/2k. Единственная проблема -- это использование этой кодировки при работе с базой через JDBC. Драйвер при перекодировании из ISO в Unicode просто добавляет старший байт 0x00, поэтому увидеть русские буквы в кодировке Unicode не удастся. Единственный выход -- использовать CL8MSWIN1251. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2002, 18:24 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=32044910&tid=1990718]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
158ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 205ms |
| total: | 419ms |

| 0 / 0 |
