2024-04-29 06:03:36
Ласкаво просимо, Гість. Будь ласка, увійдіть або зареєструйтеся.
Ви не отримали листа підтвердження?

Лоу оновився до SMF!

Автор Гілка: Перекодувальник URL-адрес  (Прочитано 5680 раз)

Axmed

  • Гість
Перекодувальник URL-адрес, на Perl6, може кому треба
Код: Perl 6
  1. #!/usr/bin/env raku
  2.  
  3. sub decode_url($url is copy) {
  4.     my %h =
  5.     '%D0%90'=>'А','%D0%91'=>'Б','%D0%92'=>'В','%D0%93'=>'Г','%D2%90'=>'Ґ',
  6.     '%D0%94'=>'Д','%D0%95'=>'Е','%D0%84'=>'Є','%D0%96'=>'Ж','%D0%97'=>'З',
  7.     '%D0%98'=>'И','%D0%86'=>'І','%D0%87'=>'Ї','%D0%99'=>'Й','%D0%9A'=>'К',
  8.     '%D0%9B'=>'Л','%D0%9C'=>'М','%D0%9D'=>'Н','%D0%9E'=>'О','%D0%9F'=>'П',
  9.     '%D0%A0'=>'Р','%D0%A1'=>'C','%D0%A2'=>'Т','%D0%A3'=>'У','%D0%A4'=>'Ф',
  10.     '%D0%A5'=>'Х','%D0%A6'=>'Ц','%D0%A7'=>'Ч','%D0%A8'=>'Ш','%D0%A9'=>'Щ',
  11.     '%D0%AC'=>'Ь','%D0%AE'=>'Ю','%D0%AF'=>'Я',
  12.  
  13.     '%D0%B0'=>'а','%D0%B1'=>'б','%D0%B2'=>'в','%D0%B3'=>'г','%D2%91'=>'ґ',
  14.     '%D0%B4'=>'д','%D0%B5'=>'е','%D1%94'=>'є','%D0%B6'=>'ж','%D0%B7'=>'з',
  15.     '%D0%B8'=>'и','%D1%96'=>'і','%D1%97'=>'ї','%D0%B9'=>'й','%D0%BA'=>'к',
  16.     '%D0%BB'=>'л','%D0%BC'=>'м','%D0%BD'=>'н','%D0%BE'=>'о','%D0%BF'=>'п',
  17.     '%D1%80'=>'р','%D1%81'=>'с','%D1%82'=>'т','%D1%83'=>'у','%D1%84'=>'ф',
  18.     '%D1%85'=>'х','%D1%86'=>'ц','%D1%87'=>'ч','%D1%88'=>'ш','%D1%89'=>'щ',
  19.     '%D1%8C'=>'ь','%D1%8E'=>'ю','%D1%8F'=>'я';
  20.  
  21.     for %h.keys {$url.=subst(/$_/,%h{$_},:g)}; say $url
  22. }
  23.  
  24. decode_url('https://uk.wikipedia.org/wiki/%D0%93%D0%BE%D0%BB%D0%BE%D0%B2%D0%BD%D0%B0_%D1%81%D1%82%D0%BE%D1%80%D1%96%D0%BD%D0%BA%D0%B0');
  25.  
« Змінено: 2021-12-04 23:20:51 від Axmed »

Axmed

  • Гість
Re: Перекодувальник URL-адрес
« Відповідей #1 : 2021-12-05 00:37:49 »
Можна простіше через бібліотеку URI::Escape

Код: Bash
  1. raku -e'use URI::Escape; uri_unescape("https://uk.wikipedia.org/wiki/%D0%92%D1%96%D0%BA%D1%96%D0%BF%D0%B5%D0%B4%D1%96%D1%8F:%D0%9F%D0%BE%D1%82%D0%BE%D1%87%D0%BD%D1%96_%D0%BF%D0%BE%D0%B4%D1%96%D1%97").say'

на перлі пʼятому так само
Код: Bash
  1. perl -e'use URI::Escape; print uri_unescape("https://uk.wikipedia.org/wiki/%D0%92%D1%96%D0%BA%D1%96%D0%BF%D0%B5%D0%B4%D1%96%D1%8F:%D0%9F%D0%BE%D1%82%D0%BE%D1%87%D0%BD%D1%96_%D0%BF%D0%BE%D0%B4%D1%96%D1%97")."\n"'