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:

SuperString             ScPyObject::GetAs_String()
{
        SuperString             str;
        
        if (PyUnicode_Check(i_objP)) {
                ScPyObject              utf8Str(PyUnicode_AsUTF8String(i_objP));
                
                str = utf8Str.GetAs_String();
        } else {
                //      calling "uc" on this means "assume this is utf8"
                str.Set(uc(PyString_AsString(i_objP)));
        }
        
        return str;
}

PyObject*       PyString_FromString(const SuperString& str)
{
        return PyString_FromString(str.utf8Z());
}

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to