#769: String::ord with packed array in MacRuby ---------------------------------+------------------------------------------ Reporter: babs.d...@… | Owner: lsansone...@… Type: defect | Status: new Priority: blocker | Milestone: MacRuby 0.7 Component: MacRuby | Keywords: binary, pack, ord, ordinal, String, String::ord ---------------------------------+------------------------------------------
Comment(by babs.d...@…): Replying to [ticket:769 babs.d...@…]: > When attempting to get the ordinal from a character of an array packed to a binary string, MacRuby returns inconsistent values, and sometimes seg. faults. > > {{{ > sha1 = ["94f389bf5d9af4511597d035e69d1be9510b50c7"].pack("H*") > sha1[0].ord > #Macirb has returned: > # 63, 96, 65428(most often), 65535, and seg. faults > #Irb returns: 148 > > foo = ['bar'].pack('H*') > foo[1].ord > #Macirb:65456 Irb:176 > > "cat"[0].ord > #Works as expected > }}} > > Tested with Ruby 1.9.1 and Macruby 6/23/10 nightly. It looks like this might just be a fundamental misunderstanding on my part about how Ruby 1.9 vs MacRuby handle encoding. But I don't know enough to say one way or the other. {{{ foo = ["bar"].pack("H*") first_char = foo[0] p first_char #Macruby:"\xBA" Ruby:"\xBA" p first_char.encoding #Macruby:<Encoding:ASCII-8BIT> Ruby:<Encoding:ASCII-8BIT> p first_char.ord #Macruby: 65466 Ruby:186 first_char.each_codepoint {|cp| p cp} #Macruby: 65466 Ruby:186 first_char.each_char {|ch| p ch} #Macruby: "ᄎ" Ruby:"\xBA" }}} I would expect that since they the same encoding (& bytesize is the same), the last line would output "\xBA" in both cases. Is that an incorrect assumption? I've been trying to wrap my head around the encoding stuff, and possible discrepancies between 1.9 and MacRuby, so any help is much appreciated. Thanks, Babs *Tested with Ruby 1.9.2 and 07/07/10 Nightly MacRuby -- Ticket URL: <http://www.macruby.org/trac/ticket/769#comment:1> MacRuby <http://macruby.org/> _______________________________________________ MacRuby-devel mailing list MacRuby-devel@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel