[TxMt] Python unicode error (was: r8839 (Python)) [reposting]

Allan Odgaard throw-away-2 at macromates.com
Mon Jun 2 13:40:58 UTC 2008


On 2 Jun 2008, at 15:34, Allan Odgaard wrote:

> [...]
> To work with UTF-8 strings written to stdout in Python you need to:
>
> 1. Declare the source code to be UTF-8 (done with the encoding  
> comment).
> 2. Declare the string itself to be a unicode string (done with the u- 
> prefix).
> 3. Set the output stream to be UTF-8 (done by wrapping stdout in a  
> codec-aware writer).
>
> If step 3 is omitted, the encoding of stdout will be taken from the  
> environment, so often it will still work.
> [...]

I should have added that this is actually desired, i.e. to have Python  
convert the output to whatever encoding the environment is using.

Most users though does not have LC_CTYPE properly setup (but they  
should fix that!).

In Leopard Terminal will set LANG automatically. Unfortunately  
sometimes it is set to an invalid value (<rdar://5564288>) and IMO  
they should only set LC_CTYPE.




More information about the textmate mailing list