Hash.inspect in --1.9 results in ASCII-8BIT encoding
----------------------------------------------------

                 Key: JRUBY-5988
                 URL: https://jira.codehaus.org/browse/JRUBY-5988
             Project: JRuby
          Issue Type: Bug
          Components: Core Classes/Modules, Ruby 1.9.2
    Affects Versions: JRuby 1.6.3, JRuby 1.6.4
         Environment: OSX Lion
            Reporter: David Lee
            Priority: Minor


In MRI 1.9, {'a' => 1}.inspect.encoding is UTF8. In JRuby --1.9, {'a' => 
1}.inspect.encoding is ASCII-8BIT.

Heuristically, if a hash contains string keys or a multibyte (not necessarily 
UTF8) string value, then MRI encodes in UTF8:
{1 => 'áßçîî'}.inspect.encoding #=> UTF8
{'ascii' => 1}.inspect.encoding #=> UTF8
{1 => non_utf8_multibyte_encoding}.inspect.encoding #=> UTF8

If the hash contains no strings in the keys and no multibyte strings in values, 
then MRI also encodes in ASCII-8BIT:
{}.inspect.encoding #=> ASCII-8BIT
{1 => 2}.inspect.encoding #=> ASCII-8BIT
{1 => 'ascii'}.inspect.encoding #=> ASCII-8BIT

JRuby always encodes in ASCII-8BIT no matter what.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira



---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to