Ruby url kodlama dize | Netgez.com
SORU
15 Temmuz 2011, Cuma


Ruby url kodlama dize

Nasıl URİ yaparım::kodlamak bir dize gibi:

\x12\x34\x56\x78\x9a\xbc\xde\xf1\x23\x45\x67\x89\xab\xcd\xef\x12\x34\x56\x78\x9a

Gibi bir formatta almak için:

4Vxš¼Þñ#Eg‰«Íï4Vxš

(RFC 1738) gibi

Denedim:

irb(main):123:0> URI::encode "\x12\x34\x56\x78\x9a\xbc\xde\xf1\x23\x45\x67\x89\xab\xcd\xef\x12\x34\x56\x78\x9a"
ArgumentError: invalid byte sequence in UTF-8
    from /usr/local/lib/ruby/1.9.1/uri/common.rb:219:in `gsub'
    from /usr/local/lib/ruby/1.9.1/uri/common.rb:219:in `escape'
    from /usr/local/lib/ruby/1.9.1/uri/common.rb:505:in `escape'
    from (irb):123
    from /usr/local/bin/irb:12:in `<main>'

Ayrıca,

irb(main):126:0> CGI::escape "\x12\x34\x56\x78\x9a\xbc\xde\xf1\x23\x45\x67\x89\xab\xcd\xef\x12\x34\x56\x78\x9a"
ArgumentError: invalid byte sequence in UTF-8
    from /usr/local/lib/ruby/1.9.1/cgi/util.rb:7:in `gsub'
    from /usr/local/lib/ruby/1.9.1/cgi/util.rb:7:in `escape'
    from (irb):126
    from /usr/local/bin/irb:12:in `<main>'

Baktım tüm internet ve bulamadım (ya da daha çok özledim) bir şekilde bunu yapmak için, ancak ben kesinlikle bunu geçen gün yaptım bu olmadan artık bir sorun.

Teşekkürler!

CEVAP
15 Temmuz 2011, Cuma


require 'open-uri'
str = "\x12\x34\x56\x78\x9a\xbc\xde\xf1\x23\x45\x67\x89\xab\xcd\xef\x12\x34\x56\x78\x9a".force_encoding('ASCII-8BIT')
puts URI::encode(str)

GÜNCELLEME: Ruby url encoding string aşağıda açıklama

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VÄ°DEO

Rastgele Yazarlar

  • 30GB

    30GB

    14 AÄžUSTOS 2006
  • BigDawsVlogs

    BigDawsVlogs

    17 HAZÄ°RAN 2013
  • TimMinchinLive

    TimMinchinLi

    23 ÅžUBAT 2009