[Python-Dev] Python dies upon printing UNICODE using UTF-8

Duncan Booth duncan@rcp.co.uk
Wed, 16 Apr 2003 15:22:06 +0100


sismex01@hebmex.com wrote in 
news:F7DB8D13DB61D511B6FF00B0D0F06233045E4456@mail.hebmex.com:

> the interpreter simply exits without any message, exception,
> peep, anything; it simply quits without printing anything.
> 
> Any suggestions?

I think its a problem with windows, or with the C runtime rather than 
Python. The line editing is handled by the system and is obviously screwy. 
Python is interpreting what you entered as signalling end of file. Call 
raw_input and type your text there and you will get an EOFError.

Try typing any non-ascii character at Python's prompt (e.g. euro symbol) 
while the selected codepage is 65001, now move the cursor back to anywhere 
earlier in the input line and enter some more text. The non-ascii character 
character displayed will change.
If you restart the interpreter and recall the line you entered you won't 
get the characters you thought you typed.

Now write a C program:
#include <stdio.h>
int main()
{
   char s[256];
   gets(s);
   return 0;
}

Compile and run it and you get exactly the same behaviour.


-- 
Duncan Booth                                             duncan@rcp.co.uk
int month(char *p){return(124864/((p[0]+p[1]-p[2]&0x1f)+1)%12)["\5\x8\3"
"\6\7\xb\1\x9\xa\2\0\4"];} // Who said my code was obscure?