unable to print Unicode characters in Python 3

Gabriel Genellina gagsl-py2 at yahoo.com.ar
Wed Jan 28 03:16:29 CET 2009


En Wed, 28 Jan 2009 00:03:55 -0200, John Machin <sjmachin at lexicon.net>  
escribió:
> On Jan 28, 5:56 am, "Martin v. Löwis" <mar... at v.loewis.de> wrote:
>> > #include "stdio.h"
>> > int main(int argc, char **argv) {
>> >     printf("<\xc2\x80>\n");
>> >     }
>>
>> > compiled with mingw32 (gcc (GCC) 3.4.5 (mingw-vista special r3))
>> > and using "Lucida Console" font:
>>
>> > After CHCP 1252, this prints < A-circumflex Euro >, as expected.
>> > After CHCP 65001, it prints < hollow-square >.
>>
>> This is not surprising: this character is U+0080, which is a control
>> character. Try \xe2\x82\xac instead.
>
> Doh! I'm a nutter. That works. Thanks. The only font choice offered
> apart from "Raster Fonts" in the Command Prompt window's Properties
> box is "Lucida Console", not "Lucida Sans Unicode". It will let me
> print Cyrillic characters from a C program, but not Chinese. I'm off
> looking for how to get a better font.

In this post, Raymond Chen explains all the conditions a font must met to  
actually be usable in a console window:
http://blogs.msdn.com/oldnewthing/archive/2007/05/16/2659903.aspx
In short, most TrueType font's (even the fixed-width ones) aren't eligible.

-- 
Gabriel Genellina




More information about the Python-list mailing list