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

  • Jose LviS el Bambino ( JLB )   LviSito

    Jose LviS el

    3 ÅžUBAT 2008
  • Adam Khoury

    Adam Khoury

    23 Ocak 2008
  • Nickcidious

    Nickcidious

    6 HAZİRAN 2011