Allan Odgaard wrote:
For example a script like this will error:

    # coding: utf-8
    print("æble")

Is r8839 supposed to allow the above?

I've spent some time working with Allan trying to tackle this bug, but we've been unable to come to a solution.

The problem seems to be that the print function detects the output encoding and uses that to encode the string to output.

This seems to point to lines 30 & 31 in tmhooks.py:
sys.stdout = codecs.getwriter('utf-8')(sys.stdout)
sys.stderr = codecs.getwriter('utf-8')(sys.stderr)

This codec will convert to utf-8, and assumes input to be ascii.
While commenting those lines out will make the above example work, it will break when printing a unicode string:

        print u"æble"

        UnicodeEncodeError: ascii, ascii, æble, 0, 1, ordinal not in range(128)

I believe that this is because somewhere along the line the outputstream is redirected and it is detected as ascii. Perhaps someone with more knowledge of Ruby can have a look at this and figure out what might be going wrong.

Jeroen.

_______________________________________________
textmate-dev mailing list
[email protected]
http://lists.macromates.com/mailman/listinfo/textmate-dev

Reply via email to