Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Alexsey Эксперт
Вступление в Клуб: 06.09.2007
|
Вт Ноя 16, 2010 14:16  программное распознавание символа « » |
|
Полезность: Нет оценки
|
Доброго времени суток, Коллеги!
Подскажите как опознать символы """ и """ в ЦФТ-Банке? бьюсь уже час. .пока ни как не получается.. т..к. в пакете символ заменяется на "?", а по chr(187) коду подставляется символ "Л" _________________ всегда есть как минимум 2 выхода |
|
 |
Alkov Профи
Вступление в Клуб: 23.09.2010
|
Чт Ноя 18, 2010 10:02   |
|
Полезность: Нет оценки
|
Где код-то ? В клиент скрипте или где ? |
|
 |
Alexsey Эксперт
Вступление в Клуб: 06.09.2007
|
Чт Ноя 18, 2010 15:33   |
|
Полезность: Нет оценки
|
Alkov пишет: | Где код-то ? В клиент скрипте или где ? |
А какая разница, где код? Вопрос в том как распознать данные символы.. Не важно будет это VBA клиент-скрипта или PLPLUS.. дело вообще в том как распознать?
Хотя с другой стороны мы проблему уже решили сами.. _________________ всегда есть как минимум 2 выхода |
|
 |
ssa774 Профи
Вступление в Клуб: 30.11.2007
|
Чт Май 10, 2012 10:43   |
|
Полезность: Нет оценки
|
Alexsey пишет: |
Хотя с другой стороны мы проблему уже решили сами.. |
Поделитесь, пожалуйста, как решили |
|
 |
devor Профи
Вступление в Клуб: 13.02.2012
|
Чт Май 10, 2012 11:22  Re: программное распознавание символа « » |
|
Полезность: Нет оценки
|
Alexsey пишет: |
Подскажите как опознать символы """ и """ в ЦФТ-Банке? бьюсь уже час. .пока ни как не получается.. т..к. в пакете символ заменяется на "?", а по chr(187) коду подставляется символ "Л" |
Что значит "опознать"?
В какой кодировке текст? Видимо, у вас путаница с win и unix кодировками. |
|
 |
Alexsey Эксперт
Вступление в Клуб: 06.09.2007
|
Чт Май 10, 2012 12:56   |
|
Полезность: 1
|
ssa774 пишет: | Alexsey пишет: |
Хотя с другой стороны мы проблему уже решили сами.. |
Поделитесь, пожалуйста, как решили |
решили побитовым считыванием без конвертации в кодировку базы.. затем заменой этого симпола на апостроф. После этого конвертация в кодировку БД. иначе. к сожалению ни как не получалось( _________________ всегда есть как минимум 2 выхода |
|
 |
maestro Профи
Вступление в Клуб: 12.10.2010
|
Чт Май 10, 2012 16:27  Re: программное распознавание символа « » |
|
Полезность: Нет оценки
|
devor пишет: |
В какой кодировке текст? Видимо, у вас путаница с win и unix кодировками. |
Данные символы есть только в кодировке WIN-1251.
На серверах у нас у всех, по-видимому, *nix, и кодировка CL8ISO8859P5.
Так что кодируйте сколько угодно данные, но при любом упоминании в коде пакета данного символа - он будет заменен на '?'. Поможет только смена кодировки БД.
Ну и если данные внешние, то битовый анализ, как предложил Alexsey! |
|
 |
devor Профи
Вступление в Клуб: 13.02.2012
|
Пт Май 11, 2012 06:18  Re: программное распознавание символа « » |
|
Полезность: Нет оценки
|
maestro пишет: |
На серверах у нас у всех, по-видимому, *nix, и кодировка CL8ISO8859P5. |
Не у всех. |
|
 |
delux001 Участник
Вступление в Клуб: 05.10.2012
|
Пн Апр 22, 2013 07:57  Re: программное распознавание символа « » |
|
Полезность: Нет оценки
|
Доброго времени суток!
Прошу Вас помочь!
Хочу спросить есть ли универсальный кодировщик?
Например есть в киргизском языке есть такие буквы: "ө" и "ү"
ИБСО эти символы не воспринимает
вместо них ставит знак "?", прошу помочь с кодировщиком |
|
 |
Gobur Профи
Вступление в Клуб: 06.11.2012
|
Пн Июн 03, 2013 19:56   |
|
Полезность: Нет оценки
|
Вклинюсь сюда с вопросом.
Получается ,если кодировка у базы специфическая, то сохранить файл в 866 кодировке вообще не выйдет? во всяком случае, в stdio.put_line срабатывает только константа WinText. А DosText сохраняет в кодировке базы. Использовать сторонние утилиты для перекодировки не собо хочется. Кто как с этим справляется? |
|
 |
Random Эксперт
Вступление в Клуб: 27.06.2011
|
Ср Июн 05, 2013 07:45   |
|
Полезность: 2
|
Gobur пишет: | Вклинюсь сюда с вопросом.
Получается ,если кодировка у базы специфическая, то сохранить файл в 866 кодировке вообще не выйдет? во всяком случае, в stdio.put_line срабатывает только константа WinText. А DosText сохраняет в кодировке базы. Использовать сторонние утилиты для перекодировки не собо хочется. Кто как с этим справляется? |
Код: | declare
win varchar2(1000) := utl_raw.cast_to_varchar2(hextoraw('C0C1C2C3C4C5A8C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5B8E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF'));
dos varchar2(1000) := utl_raw.cast_to_varchar2(hextoraw('808182838485F0868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5F1A6A7A8A9AAABACADAEAFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF'));
koi varchar2(1000) := utl_raw.cast_to_varchar2(hextoraw('E1E2F7E7E4E5B3F6FAE9EAEBECEDEEEFF0F2F3F4F5E6E8E3FEFBFDFFF9F8FCE0F1C1C2D7C7C4C5A3D6DAC9CACBCCCDCECFD0D2D3D4D5C6C8C3DEDBDDDFD9D8DCC0D1'));
src varchar2(1000) := 'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя';
function convert(p_text varchar2, p_from pls_integer, p_to pls_integer) return varchar2 is
v$ret varchar2(32767);
v$from varchar2(1000);
v$to varchar2(1000);
begin
if p_from = p_to then
return p_text;
end if;
if p_from = stdio.WINTEXT then
v$from := win;
elsif p_from = stdio.DOSTEXT then
v$from := dos;
elsif p_from = stdio.KOITEXT then
v$from := koi;
else
v$from := src;
end if;
if p_to = stdio.WINTEXT then
v$to := win;
elsif p_to = stdio.DOSTEXT then
v$to := dos;
elsif p_to = stdio.KOITEXT then
v$to := koi;
else
v$to := src;
end if;
v$ret := translate(p_text,v$from,v$to);
return v$ret;
end;
begin
null;
end;
|
src - кодировка базы. Как бы она ни была задана, буквы останутся на своём месте. Соответствие буквам других кодировок выполняется по позиции, позиция букв одинакова.
Должно работать. |
|
 |
Gobur Профи
Вступление в Клуб: 06.11.2012
|
Чт Июн 06, 2013 11:32   |
|
Полезность: Нет оценки
|
Да все верно.
Попробовал еще раз - все нормально. Где то я тупанул - возможно параметр пропустил в put_line |
|
 |
|