【发布时间】:2011-10-06 13:13:27
【问题描述】:
我如何URI::encode 一个类似的字符串:
\x12\x34\x56\x78\x9a\xbc\xde\xf1\x23\x45\x67\x89\xab\xcd\xef\x12\x34\x56\x78\x9a
以如下格式获取它:
%124Vx%9A%BC%DE%F1%23Eg%89%AB%CD%EF%124Vx%9A
根据 RFC 1738?
这是我尝试过的:
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>'
还有:
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>'
我查看了有关互联网的所有信息,但没有找到一种方法来做到这一点,尽管我几乎可以肯定前几天我做到了这一点,没有任何麻烦。
【问题讨论】:
-
如果使用 Ruby 1.9 可能有用:yehudakatz.com/2010/05/05/…
标签: ruby-on-rails ruby string uri urlencode