Comment puis-je URI::encode
une chaîne comme :
\x12\x34\x56\x78\x9a\xbc\xde\xf1\x23\x45\x67\x89\xab\xcd\xef\x12\x34\x56\x78\x9a
pour l'obtenir dans un format comme :
%124Vx%9A%BC%DE%F1%23Eg%89%AB%CD%EF%124Vx%9A
conformément à la RFC 1738 ?
Voici ce que j'ai essayé :
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>'
Aussi :
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>'
J'ai cherché partout sur Internet et je n'ai pas trouvé de moyen de le faire, bien que je sois presque certain de l'avoir fait l'autre jour sans le moindre problème.
1 votes
Peut-être utile si vous utilisez Ruby 1.9 : yehudakatz.com/2010/05/05/…