Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 кодировка при конвертации из dbf  [new]
vitall538
Member

Откуда:
Сообщений: 40
Уважаемые гуру, есть таблица, в свое время импортируемая из foxpro. И в строках ее существуют артефакты. Что-то вроде
select convert(str,'AL32UTF8','CL8MSWIN1251') from table
не помогает.

Что делать ?
29 сен 08, 15:32    [6240915]     Ответить | Цитировать Сообщить модератору
 Re: кодировка при конвертации из dbf  [new]
Elic
Member

Откуда:
Сообщений: 29991
select str, dump(str, 16) from table where <существуют артефакты> and rownum <= 10;
29 сен 08, 15:38    [6240955]     Ответить | Цитировать Сообщить модератору
 Re: кодировка при конвертации из dbf  [new]
vitall538
Member

Откуда:
Сообщений: 40
Он (dump) и возвращает
Typ=1 Len=7: d1,e5,f0,e3,e5,e9,d
:(
29 сен 08, 15:43    [6240998]     Ответить | Цитировать Сообщить модератору
 Re: кодировка при конвертации из dbf  [new]
SQL*Plus
Member

Откуда: Россия, Москва
Сообщений: 8136
vitall538
d1,e5,f0,e3,e5,e9

означает
Сергей
(в кодировке CL8MSWIN1251)
29 сен 08, 15:55    [6241092]     Ответить | Цитировать Сообщить модератору
 Re: кодировка при конвертации из dbf  [new]
vitall538
Member

Откуда:
Сообщений: 40
Спасибо, это я знал, вот только как вот брать эти артефакты, в какую кодировку конвертировать?
29 сен 08, 16:04    [6241166]     Ответить | Цитировать Сообщить модератору
 Re: кодировка при конвертации из dbf  [new]
SQL*Plus
Member

Откуда: Россия, Москва
Сообщений: 8136
vitall538
Спасибо, это я знал, вот только как вот брать эти артефакты, в какую кодировку конвертировать?
А если знаете, то зачем вы пытаетесь текст, хранящийся в БД в русской кодировке Windows (CP 1251)
перекодировать (Convert) в русскую кодировку Windows так, как будто оно перекодируется из Юникод?

P.S.
Wikipedia
Артефа́кт (от лат. artefactum — искусственно сделанное) — явление, процесс, предмет, свойство предмета или процесса, появление которого в наблюдаемых условиях по естественным причинам невозможно или маловероятно. Появление артефакта, следовательно, является признаком целенаправленного вмешательства в наблюдаемый процесс, либо наличия неких неучтённых факторов.
29 сен 08, 16:11    [6241233]     Ответить | Цитировать Сообщить модератору
 Re: кодировка при конвертации из dbf  [new]
vitall538
Member

Откуда:
Сообщений: 40
А что тогда делать, если после строчки в поле и в пустых полях появляются "палки" и никакой replace не спасает?
29 сен 08, 16:32    [6241388]     Ответить | Цитировать Сообщить модератору
 Re: кодировка при конвертации из dbf  [new]
SQL*Plus
Member

Откуда: Россия, Москва
Сообщений: 8136
Разбираться.
Посмотреть кодировку базы, значение переменной NLS_LANG и т.п.
29 сен 08, 16:35    [6241417]     Ответить | Цитировать Сообщить модератору
 Re: кодировка при конвертации из dbf  [new]
vitall538
Member

Откуда:
Сообщений: 40
select * from v$nls_valid_values a where a.VALUE like 'CL8M%
возвращает
CL8MACCYRILLIC
CL8MACCYRILLICS
CL8MSWIN1251
и все, может подскажите что еще попробовать?
29 сен 08, 16:41    [6241465]     Ответить | Цитировать Сообщить модератору
 Re: кодировка при конвертации из dbf  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18399
vitall538
select * from v$nls_valid_values

К чему бы это?
Покажите лучше
select * from nls_database_parameters where parameter in ('NLS_CHARACTERSET', 'NLS_NCHAR_CHARACTERSET')
29 сен 08, 16:51    [6241546]     Ответить | Цитировать Сообщить модератору
 Re: кодировка при конвертации из dbf  [new]
Пробегалло
Guest
Для начала неплохо бы позырить в заголовок dbf-ки. И сравнить с данными.
У мну был трабл, када текст был 866, а в заголовке стояло 1256(?) Arabic (мсскул рулит).
В итоге пока догнал что да как - обильно ругался на артефакты при перекодировке.
30 сен 08, 10:02    [6243730]     Ответить | Цитировать Сообщить модератору
 Re: кодировка при конвертации из dbf  [new]
DВА
Member

Откуда:
Сообщений: 5439
Пробегалло
Для начала неплохо бы позырить в заголовок dbf-ки. И сравнить с данными.
У мну был трабл, када текст был 866, а в заголовке стояло 1256(?) Arabic (мсскул рулит).
В итоге пока догнал что да как - обильно ругался на артефакты при перекодировке.

угу, проще всего в том же фокспро обнулить заголовок и париться
30 сен 08, 13:21    [6245215]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить