Показать сообщение отдельно
Старый 17.02.2004, 20:25     # 8
rontommy
Добряк Модератор
ГлавБюстАтценка АН ИМХО.ВС
 
Аватар для rontommy
 
Регистрация: 14.10.2002
Адрес: Старый оценщик, НИИ ГлавБюстАтценка АН ИМХО.ВС
Пол: Male
Сообщения: 4 010

rontommy Гипербогrontommy Гипербогrontommy Гипербогrontommy Гипербогrontommy Гипербог
rontommy Гипербогrontommy Гипербогrontommy Гипербогrontommy Гипербогrontommy Гипербогrontommy Гипербогrontommy Гипербогrontommy Гипербогrontommy Гипербогrontommy Гипербогrontommy Гипербог
Да, задачка не простая. Ну вот попробуй, что получилось :

Код:
$input = "VaSiA%C2%C0%D1%DF"; # VaSiAВАСЯ
$s = $input;
$s =~ s/%([0-9a-fA-F]{2})/chr hex($1)/ge; # convert to char
$hex = lc $s; # low case ascii chars
$hex =~ tr#\xC0-\xDF#\xE0-\xFF#; # low case non-ascii chars
$out = $hex;
$out =~ s/([^a-zA-Z0-9_.-])/uc sprintf("%%%02x",ord($1))/eg; # URL-encode data
print "input=$input\nhex=$hex\nout=$out\n";
# My output in UNIX :
# input=VaSiA%C2%C0%D1%DF
# hex=vasiaâàñÿ
# out=vasia%E2%E0%F1%FF
__________________
Лень - это когда видишь необходимость что-то делать, но не хочется, а влом - это когда что-то хочется, но не видишь необходимости это делать.
rontommy вне форума