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

  • colacas

    colacas

    29 EKİM 2006
  • PomplamooseMusic

    PomplamooseM

    28 HAZİRAN 2008
  • TheDroidDemos

    TheDroidDemo

    15 ÅžUBAT 2011