Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Alexander V. Gaiduk                  2:5020/400     15 Mar 2002  13:40:04
 To : Artem Chuprina
 Subject : Hа: unescape
 -------------------------------------------------------------------------------- 
 
 > AVG> в куке лежит такое:
 >
 > AVG> nam=%u0410%u043B%u0435%u043A%u0441%u0430%u043D%u0434%u0440
 >
 > AVG> кто чем такое читает ?
 > AVG> как это юникодовое чудище проще перевести в win1251 ?
 >
 > AVG> я волшебное слово знаю: плииzz.
 >
 > Сначала, надо полагать, URI::Escape на предмет unescape, а потом
 > Unicode::Map8. Если URI::Escape само не возьмет, то тривиально делается на
 > основе таблички для windows-1251 (там ее фамилия, полагаю, CP1251) с
 > ftp.unicode.org. Хучь предварительной ея переработкой в хэш, хучь прям
 > регексом по файлу. Первое быстрее. Структура у нее на редкость регулярная:
 >
 > ==== 8< [/usr/share/i18n/charmaps/CP1251] ====
 
 [грызь]
 
 URI::Escape - по 4 цифирям не умеет
 Unicode::Map8 - у меня отсутствует
 остался метод - "в лоб" по хэшу.
 
 сделал пример, может кому еще поможет :
 
 %unicode1251 = (
   "u0402" => 0x80, "u0403" => 0x81, "u0453" => 0x83, "u0409" => 0x8A,
   "u040A" => 0x8C, "u040C" => 0x8D, "u040B" => 0x8E, "u040F" => 0x8F,
   "u0452" => 0x90, "u0459" => 0x9A, "u045A" => 0x9C, "u045C" => 0x9D,
   "u045B" => 0x9E, "u045F" => 0x9F, "u040E" => 0xA1, "u045E" => 0xA2,
   "u0408" => 0xA3, "u0490" => 0xA5, "u0401" => 0xA8, "u0404" => 0xAA,
   "u0407" => 0xAF, "u0406" => 0xB2, "u0456" => 0xB3, "u0491" => 0xB4,
   "u0451" => 0xB8, "u0454" => 0xBA, "u0458" => 0xBC, "u0405" => 0xBD,
   "u0455" => 0xBE, "u0457" => 0xBF, "u0410" => 0xC0, "u0411" => 0xC1,
   "u0412" => 0xC2, "u0413" => 0xC3, "u0414" => 0xC4, "u0415" => 0xC5,
   "u0416" => 0xC6, "u0417" => 0xC7, "u0418" => 0xC8, "u0419" => 0xC9,
   "u041A" => 0xCA, "u041B" => 0xCB, "u041C" => 0xCC, "u041D" => 0xCD,
   "u041E" => 0xCE, "u041F" => 0xCF, "u0420" => 0xD0, "u0421" => 0xD1,
   "u0422" => 0xD2, "u0423" => 0xD3, "u0424" => 0xD4, "u0425" => 0xD5,
   "u0426" => 0xD6, "u0427" => 0xD7, "u0428" => 0xD8, "u0429" => 0xD9,
   "u042A" => 0xDA, "u042B" => 0xDB, "u042C" => 0xDC, "u042D" => 0xDD,
   "u042E" => 0xDE, "u042F" => 0xDF, "u0430" => 0xE0, "u0431" => 0xE1,
   "u0432" => 0xE2, "u0433" => 0xE3, "u0434" => 0xE4, "u0435" => 0xE5,
   "u0436" => 0xE6, "u0437" => 0xE7, "u0438" => 0xE8, "u0439" => 0xE9,
   "u043A" => 0xEA, "u043B" => 0xEB, "u043C" => 0xEC, "u043D" => 0xED,
   "u043E" => 0xEE, "u043F" => 0xEF, "u0440" => 0xF0, "u0441" => 0xF1,
   "u0442" => 0xF2, "u0443" => 0xF3, "u0444" => 0xF4, "u0445" => 0xF5,
   "u0446" => 0xF6, "u0447" => 0xF7, "u0448" => 0xF8, "u0449" => 0xF9,
   "u044A" => 0xFA, "u044B" => 0xFB, "u044C" => 0xFC, "u044D" => 0xFD,
   "u044E" => 0xFE, "u044F" => 0xFF);
 
 open(F, "<cookies.dat") || die "can't open file\n";
 while (<F>) {
   s/%(u....)/chr($unicode1251{$1})/ge;
   s/%(..)/pack("c", hex($1))/ge;
   print
 }
 close(F);
 --- ifmail v.2.15dev5
  * Origin: Demos online service (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 unescape   Alexander V. Gaiduk   14 Mar 2002 18:21:42 
 Re: unescape   Artem Chuprina   14 Mar 2002 19:21:18 
 Hа: unescape   Alexander V. Gaiduk   15 Mar 2002 13:40:04 
 Re: Hа: unescape   Andrey Sapozhnikov   15 Mar 2002 16:23:36 
 Hа: Hа: unescape   Alexander V. Gaiduk   19 Mar 2002 18:48:53 
 Re: Hа: Hа: unescape   Andrey Sapozhnikov   19 Mar 2002 20:19:34 
 Re: Hа: Hа: unescape   Andrey Sapozhnikov   19 Mar 2002 20:19:34 
 Hа: Hа: unescape   Alexander V. Gaiduk   19 Mar 2002 18:48:53 
Архивное /ru.perl/11999fffe23de.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional