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

  • FailArmy U

    FailArmy U

    29 AĞUSTOS 2009
  • Joanna Okrajni

    Joanna Okraj

    4 EYLÜL 2010
  • metallmanutza13

    metallmanutz

    13 NİSAN 2007