How to print this character u'\u20ac' to DOS terminal

momobear wgwigw at gmail.com
Wed May 30 08:49:49 EDT 2007


On May 30, 3:05 pm, ÈËÑÔÂäÈÕÊÇÌìÑÄ£¬Íû¼«ÌìÑIJ»¼û¼Ò <kelvin.... at gmail.com> wrote:
> On 5ÔÂ30ÈÕ, ÏÂÎç1ʱ23·Ö, "Martin v. Lo"wis" <mar... at v.loewis.de> wrote:
>
>
>
> > ÈËÑÔÂäÈÕÊÇÌìÑÄ£¬Íû¼«ÌìÑIJ»¼û¼Ò schrieb:
>
> > > Who could explain the follow issue ?
> > >>>> print u'\u0394'
> > > ¦¤
> > >>>> print u'\u20ac'
> > > Traceback (most recent call last):
> > >   File "<stdin>", line 1, in <module>
> > > UnicodeEncodeError: 'gbk' codec can't encode character u'\u20ac' in
> > > position 0:
> > > illegal multibyte sequence
>
> > > My terminal is cmd.exe under windows XP.
> > > what's the different between the two character ? what can I do if I
> > > want to print the u'\u20ac'?
>
> > The problem is that your terminal uses (some form of) the GBK encoding;
> > seehttp://zh.wikipedia.org/wiki/GBKfordetails on GBK.
>
> > It seems that GBK (or, rather, code page 936) supports the delta
> > character, but not the euro sign.
>
> > To change that, you can use "chcp" in your terminal window.
> > For example, if you do "chcp 850", you should be able to
> > display the euro sign (but will simultaneously use the ability
> > to display the letter delta, and the chinese letters).
>
> > I don't know whether the terminal supports an UTF-8 code
> > page; you can try setting the terminal's code page to
> > 65001 (which should be UTF-8).
>
> > Regards,
> > Martin
>
> Thanks, but it seems not work yet.
>
> ----------------------------------------------------
> C:\WINDOWS>chcp 850
> Active code page: 850
>
> C:\WINDOWS>python
> Python 2.5.1 (r251:54863, Apr 18 2007, 08:51:08) [MSC v.1310 32 bit
> (Intel)] on
> win32
> Type "help", "copyright", "credits" or "license" for more information.>>> print u'\u20ac'
>
> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
>   File "C:\Python25\lib\encodings\cp850.py", line 12, in encode
>     return codecs.charmap_encode(input,errors,encoding_map)
> UnicodeEncodeError: 'charmap' codec can't encode character u'\u20ac'
> in position
>  0: character maps to <undefined>
>
> C:\WINDOWS>chcp 65001
> Active code page: 65001
>
> C:\WINDOWS>python
> Python 2.5.1 (r251:54863, Apr 18 2007, 08:51:08) [MSC v.1310 32 bit
> (Intel)] on
> win32
> Type "help", "copyright", "credits" or "license" for more information.>>> print u'\u20ac'
>
> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
> LookupError: unknown encoding: cp65001
> -----------------------------------------------
> I find that the u'\u20ac' related 'mbcs' encode is 0x80, I could print
> it directly
>
> >>> print '\x80'
>>
> But the string contained the u'\u20ac' is get from remote host. Is
> there any method to decode it to the local 'mbcs'?

forgot to unicode(string) before send it?




More information about the Python-list mailing list