[MacRuby] #1124: string.ord returns 0xFFFF for all characters 0x80 or greater in binary string
MacRuby
ruby-noreply at macosforge.org
Mon Jan 24 22:16:53 PST 2011
#1124: string.ord returns 0xFFFF for all characters 0x80 or greater in binary
string
------------------------------------------+---------------------------------
Reporter: justin@… | Owner: vincent.isambart@…
Type: defect | Status: new
Priority: critical | Milestone: MacRuby 0.9
Component: MacRuby | Keywords:
------------------------------------------+---------------------------------
Changes (by vincent.isambart@…):
* owner: lsansonetti@… => vincent.isambart@…
Comment:
In fact both results are incorrect. Running it in 1.9 (adding {{{#coding:
utf-8}}} at the start line of the file) raises an "invalid byte sequence
in UTF-8 (ArgumentError)".
I don't have MacRuby handy, but looking at the source code there are a few
differences with the behavior of 1.9:
* {{{String#each_char}}} and {{{String#ord}}} do not throw an exception
when the encoding is invalid
* {{{String#ord}}} in ASCII-8BIT returns 0xFFFF for non ASCII-characters
(it should simply return the byte value)
Note that to iterate other the bytes of a string, you should use
{{{String#each_byte}}} instead of {{{String#each_char}}}.
--
Ticket URL: <http://www.macruby.org/trac/ticket/1124#comment:1>
MacRuby <http://macruby.org/>
More information about the macruby-tickets
mailing list