Как перекодировать строку (в формат вида %XX)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by aydar, 23 Nov 2010.

  1. aydar

    aydar Member

    Joined:
    12 Nov 2009
    Messages:
    259
    Likes Received:
    6
    Reputations:
    -2
    Как перекодировать строку в такой формат
    %D0%90%D0%B9%D0%B4%D0%B0%D1%80 ?
     
  2. slesh

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

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    это UTF-8 переведенный в HEX с добавлением % перед значением.

    Проще выражаясь utf8 + urlencode
     
  3. K0rINf

    K0rINf Member

    Joined:
    20 Jan 2009
    Messages:
    40
    Likes Received:
    5
    Reputations:
    6
    а что перевести надо?? Ру или Drugoe&??
     
  4. rudi

    rudi Active Member

    Joined:
    3 Jun 2010
    Messages:
    487
    Likes Received:
    184
    Reputations:
    5
    есть стандартные функции
    спотря какой ЯП используешь
    а можешь и сам написать такую функцию
     
  5. 090808

    090808 Member

    Joined:
    15 Mar 2009
    Messages:
    171
    Likes Received:
    46
    Reputations:
    10
    PHP:
    function HTTPEncode(const AStrString): String;
    const
      
    NoConversion = ['A'..'Z','a'..'z','*','@','.','_','-'];
    var
      
    SpRpPChar;
    begin
      SetLength
    (ResultLength(AStr) * 3);
      
    Sp := PChar(AStr);
      
    Rp := PChar(Result);
      while 
    Sp^ <> #0 do
      
    begin
        
    if Spin NoConversion then
          Rp
    ^ := Sp^
        else
          if 
    Sp^ = ' ' then
            Rp
    ^ := '+'
          
    else
          
    begin
            FormatBuf
    (Rp^, 3'%%%.2x'6, [Ord(Sp^)]);
            
    Inc(Rp,2);
          
    end;
        
    Inc(Rp);
        
    Inc(Sp);
      
    end;
      
    SetLength(ResultRp PChar(Result));
    end;