CftClub.ru
Клуб специалистов ЦФТ-Банк

программное распознавание символа "« »"

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle
Предыдущая тема :: Следующая тема  
Автор Сообщение
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
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru