On 5月30日, 下午1时23分, "Martin v. Lo"wis" <[EMAIL PROTECTED]> wrote: > 人言落日是天涯,望极天涯不见家 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/GBKfor details 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'?
-- http://mail.python.org/mailman/listinfo/python-list