Помогите с кодировкой!

Discussion in 'Болталка' started by ICEW!, 19 Mar 2011.

  1. ICEW!

    ICEW! New Member

    Joined:
    5 Aug 2010
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Всем доброй ночи. Нужна ваша помощь.

    Существует список ссылок вида:
    HTML:
    http://www.moyareklama.ru/Курск/услуги/все/1
    http://www.moyareklama.ru/Курск/услуги/все/2
    http://www.moyareklama.ru/Курск/услуги/все/3
    http://www.moyareklama.ru/Курск/услуги/все/4
    http://www.moyareklama.ru/Курск/услуги/все/5
    Нужно, чтобы ссылки приняли вот такой вид:
    HTML:
    http://www.moyareklama.ru/%D0%9E%D1%80%D0%B5%D0%BB/%D0%BC%D0%B5%D0%B1%D0%B5%D0%BB%D1%8C/%D0%B2%D1%81%D0%B5/1
    http://www.moyareklama.ru/%D0%9E%D1%80%D0%B5%D0%BB/%D0%BC%D0%B5%D0%B1%D0%B5%D0%BB%D1%8C/%D0%B2%D1%81%D0%B5/2
    http://www.moyareklama.ru/%D0%9E%D1%80%D0%B5%D0%BB/%D0%BC%D0%B5%D0%B1%D0%B5%D0%BB%D1%8C/%D0%B2%D1%81%D0%B5/3
    http://www.moyareklama.ru/%D0%9E%D1%80%D0%B5%D0%BB/%D0%BC%D0%B5%D0%B1%D0%B5%D0%BB%D1%8C/%D0%B2%D1%81%D0%B5/4
    http://www.moyareklama.ru/%D0%9E%D1%80%D0%B5%D0%BB/%D0%BC%D0%B5%D0%B1%D0%B5%D0%BB%D1%8C/%D0%B2%D1%81%D0%B5/5
     
  2. Bmite

    Bmite Робот-Казанова

    Joined:
    27 Feb 2007
    Messages:
    336
    Likes Received:
    80
    Reputations:
    0
    держи зём:
    http://www.moyareklama.ru/%D0%9A%D1%83%D1%80%D1%81%D0%BA/%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B8/%D0%B2%D1%81%D0%B5/1

    http://www.moyareklama.ru/%D0%9A%D1%83%D1%80%D1%81%D0%BA/%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B8/%D0%B2%D1%81%D0%B5/2

    http://www.moyareklama.ru/%D0%9A%D1%83%D1%80%D1%81%D0%BA/%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B8/%D0%B2%D1%81%D0%B5/3

    http://www.moyareklama.ru/%D0%9A%D1%83%D1%80%D1%81%D0%BA/%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B8/%D0%B2%D1%81%D0%B5/4

    http://www.moyareklama.ru/%D0%9A%D1%83%D1%80%D1%81%D0%BA/%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B8/%D0%B2%D1%81%D0%B5/5

    Если не правильно, то подробней напиши.
     
  3. ICEW!

    ICEW! New Member

    Joined:
    5 Aug 2010
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Прошу прощения, не корректно задал вопрос. У меня просто существует очень большое количество таких ссылок. Каким софтом можно перевести из такого вида:
    http://www.moyareklama.ru/Курск/услуги/все/1
    в такой:
    http://www.moyareklama.ru/%D0%9A%D1%83%D1%80%D1%81%D0%BA/%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B8/%D0%B2%D1%81%D0%B5/1
     
  4. Lestatkiy

    Lestatkiy Member

    Joined:
    27 Sep 2010
    Messages:
    50
    Likes Received:
    22
    Reputations:
    5
    notepad++ Кодировка-Переобразовать, мне иногда помогало. Но у тебя по идее не той случай :(
     
  5. ICEW!

    ICEW! New Member

    Joined:
    5 Aug 2010
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    ну и в какую именно кодировку?
     
  6. Fepsis

    Fepsis Elder - Старейшина

    Joined:
    17 Sep 2008
    Messages:
    791
    Likes Received:
    391
    Reputations:
    72
    ICEW!, PERL-скрипты умеешь запускать..?!
     
  7. Bmite

    Bmite Робот-Казанова

    Joined:
    27 Feb 2007
    Messages:
    336
    Likes Received:
    80
    Reputations:
    0
    вот вам тыц
     
  8. ICEW!

    ICEW! New Member

    Joined:
    5 Aug 2010
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    не то
    да, умею
     
  9. Fepsis

    Fepsis Elder - Старейшина

    Joined:
    17 Sep 2008
    Messages:
    791
    Likes Received:
    391
    Reputations:
    72
    Код не очень красивый получился, но в общем работает:

    Code:
    #!/usr/bin/perl 
    
    use Encode;
    use URI::Escape;
    
    
    open(IN, 'in.txt'); 
    
    while ($url = <IN>)
    
         {
    	chomp($url);
    
    	Encode::from_to($url, 'windows-1251', 'utf-8');
    	$url = uri_escape($url);
    
    	$url =~ s/%3A/:/g;
    	$url =~ s/%2F/\//g;
    
    	print "$url \n";
    
    	logg($url, 'out.txt', 1);
         }
    
    close(IN);
    
    
    
    
    sub logg
    
         {
    	my ($data, $file, $mod) = @_;
    
    	if ($mod)
    	     {
    		open(OUT, ">> ".$file);
    	     }
    
    	else
    	     {
    		open(OUT, "> ".$file);
    	     }
    
    	print OUT "$data\n";
    	close(OUT);
         }
    В папку со скриптом кидаешь in.txt со своими урлами, запускаешь скрипт.. РЕзультат ищи в out.txt
     
Loading...