|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Artem Chuprina 2:5020/400 12 Jan 2003 23:24:24 To : "Serg" Subject : Re: Как закодировать строку? -------------------------------------------------------------------------------- Здравствуй, Serg. S> Hi All, S> есть строка, нопример: S> $st='gg<>kk'; S> Какие есть классы, что бы культурно ее закодировать. В результате она примет S> вид: S> $st='gg%3C%3Ekk'; URI::Escape? S> Вообще, для этого у меня есть функция: S> sub urlencode S> { S> my $theURL = $_[0]; S> my $MetaChars = quotemeta('<>;,/?\|=+)(*&^%$#!~`:'); S> $theURL =~ s/([$MetaChars\"\'\x80-\xFF])/"%".uc(sprintf("%2.2x", S> ord($1)))/eg; S> $theURL =~ s/ /\+/g; S> return $theURL; S> } S> Щас вот залез в dreamweaver и он мне ее закодировал так: S> $st='gg<>kk'; А это HTML escaping. Они применяются в разных местах. S> А строку $st='абв' так: S> àáâ S> Естественно, моя-то функция такого сделать не сможет. И слава Богу... Я бы за это автору либо dreamweaver, либо тому, кто его настраивал, оборвал бы органы размножения. S> Hо почти наверняка есть S> класс, в котором можно закодировать и первым вариантом (%\d\d) и вторым S> (&simv). Hе подскажите его? CGI в принципе умеет. Больше вряд ли кто - для остальных задачи непересекающиеся. Hо CGI, подозреваю, для всего экранируемого, кроме <, >, " и & будет вставлять entity с кодом. Что в большинстве случаев тоже неправильно. -- Artem Chuprina Communiware.net RFC2822: <ran@ran.pp.ru>, FIDO: 2:5020/122.256, ICQ: 13038757 --- ifmail v.2.15dev5 * Origin: Leninsky 45 home network (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/14454fb527034.html, оценка из 5, голосов 10
|