On 25/08/2013 23:32, David M. Cotter wrote:
i got it!!  OMG!  so sorry for the confusion, but i learned a lot,
and i can share the result:

the CORRECT code *was* what i had assumed.  the Python side has
always been correct (no need to put "u" in front of strings, it is
known that the bytes are utf8 bytes)

it was my "run script" function which read in the file.  THAT was
what was "reinterpreting" the utf8 bytes as macRoman (on both
platforms).  correct code below:

When working with Unicode, what you should be doing is:

1. Specifying the encoding line in the special comment.

2. Setting the encoding of the source file.

3. Using Unicode string literals in the source file.

You're doing (1) and (2), but not (3).

If you want to pass UTF-8 to the the C++, then encode the Unicode
string to bytes when you pass it. Using bytestring literals and relying
on the source file being UTF-8, like you doing, is just asking for
trouble, as you've found out! :-)
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to