[MacRuby] #849: MacRuby throws the exception of "Encoding::CompatibilityError" with various cases.
MacRuby
ruby-noreply at macosforge.org
Thu Aug 12 16:54:07 PDT 2010
#849: MacRuby throws the exception of "Encoding::CompatibilityError" with various
cases.
----------------------------------+-----------------------------------------
Reporter: watson1978@… | Owner: lsansonetti@…
Type: defect | Status: new
Priority: blocker | Milestone:
Component: MacRuby | Keywords:
----------------------------------+-----------------------------------------
Comment(by lsansonetti@…):
It seems to come from cgi/util.rb:
{{{
(gdb) p rb_symbolicate (0x0000000102c43acf)
addr 0x102c43acf start 0x102c43960 selector unescape: location
/Library/Frameworks/MacRuby.framework/Versions/0.7/usr/lib/ruby/1.9.2/cgi/util.rb:17
}}}
{{{
# URL-decode a string with encoding(optional).
# string = CGI::unescape("%27Stop%21%27+said+Fred")
# # => "'Stop!' said Fred"
def CGI::unescape(string,encoding=@@accept_charset)
str=string.tr('+', ' ').gsub(/((?:%[0-9a-fA-F]{2})+)/) do
[$1.delete('%')].pack('H*')
end.force_encoding(encoding)
str.valid_encoding? ? str : str.force_encoding(string.encoding)
end
}}}
I suspect our pack function returns binary data by default which can't be
concatenated to UTF-8.
--
Ticket URL: <http://www.macruby.org/trac/ticket/849#comment:2>
MacRuby <http://macruby.org/>
More information about the macruby-tickets
mailing list