utl_http кодировка POST-запроса

v_danilov
Дата: 03.12.2009 10:46:41
русский текст передаваемых значений в PHP-сценарии виден как iiiiii.
NLS_CHARACTERSET=CL8MSWIN1251
content-type=application/x-www-form-urlencoded;charset=windows-1251

где еще что можно посмотреть?
v_danilov
Дата: 03.12.2009 12:15:46
обнаружит что браузер транслирует русские буквы в запросе.
решил сделать по аналогии:

  function url_translate( s in varchar ) return varchar2
  as
    sres varchar2(4000);
  begin
    sres := s;
    sres := replace( sres, 'а', '%E0' ); sres := replace( sres, 'А', '%C0' );
    sres := replace( sres, 'б', '%E1' ); sres := replace( sres, 'Б', '%C1' );
    sres := replace( sres, 'в', '%E2' ); sres := replace( sres, 'В', '%C2' );
    sres := replace( sres, 'г', '%E3' ); sres := replace( sres, 'Г', '%C3' );
    sres := replace( sres, 'д', '%E4' ); sres := replace( sres, 'Д', '%C4' );
    sres := replace( sres, 'е', '%E5' ); sres := replace( sres, 'Е', '%C5' );
    sres := replace( sres, 'ё', '%B8' ); sres := replace( sres, 'Ё', '%A8' );
    sres := replace( sres, 'ж', '%E6' ); sres := replace( sres, 'Ж', '%C6' );
    sres := replace( sres, 'з', '%E7' ); sres := replace( sres, 'З', '%C7' );
    sres := replace( sres, 'и', '%E8' ); sres := replace( sres, 'И', '%C8' );
    sres := replace( sres, 'й', '%E9' ); sres := replace( sres, 'Й', '%C9' );
    sres := replace( sres, 'к', '%EA' ); sres := replace( sres, 'К', '%CA' );
    sres := replace( sres, 'л', '%EB' ); sres := replace( sres, 'Л', '%CB' );
    sres := replace( sres, 'м', '%EC' ); sres := replace( sres, 'М', '%CC' );
    sres := replace( sres, 'н', '%ED' ); sres := replace( sres, 'Н', '%CD' );
    sres := replace( sres, 'о', '%EE' ); sres := replace( sres, 'О', '%CE' );
    sres := replace( sres, 'п', '%EF' ); sres := replace( sres, 'П', '%CF' );
    sres := replace( sres, 'р', '%F0' ); sres := replace( sres, 'Р', '%D0' );
    sres := replace( sres, 'с', '%F1' ); sres := replace( sres, 'С', '%D1' );
    sres := replace( sres, 'т', '%F2' ); sres := replace( sres, 'Т', '%D2' );
    sres := replace( sres, 'у', '%F3' ); sres := replace( sres, 'У', '%D3' );
    sres := replace( sres, 'ф', '%F4' ); sres := replace( sres, 'Ф', '%D4' );
    sres := replace( sres, 'х', '%F5' ); sres := replace( sres, 'Х', '%D5' );
    sres := replace( sres, 'ц', '%F6' ); sres := replace( sres, 'Ц', '%D6' );
    sres := replace( sres, 'ч', '%F7' ); sres := replace( sres, 'Ч', '%D7' );
    sres := replace( sres, 'ш', '%F8' ); sres := replace( sres, 'Ш', '%D8' );
    sres := replace( sres, 'щ', '%F9' ); sres := replace( sres, 'Щ', '%D9' );
    sres := replace( sres, 'ъ', '%FA' ); sres := replace( sres, 'Ъ', '%DA' );
    sres := replace( sres, 'ы', '%FB' ); sres := replace( sres, 'Ы', '%DB' );
    sres := replace( sres, 'ь', '%FC' ); sres := replace( sres, 'Ь', '%DC' );
    sres := replace( sres, 'э', '%FD' ); sres := replace( sres, 'Э', '%DD' );
    sres := replace( sres, 'ю', '%FE' ); sres := replace( sres, 'Ю', '%DE' );
    sres := replace( sres, 'я', '%FF' ); sres := replace( sres, 'Я', '%DF' );
    return sres;
  end;

на простейших примерах работает. теоретически должно работать и для моей задачи.
может кому пригодится)