|
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) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/11999fffe23de.html, оценка из 5, голосов 10
|