On May 30, 3:05 pm, 人言落日是天涯,望极天涯不见家 <[EMAIL PROTECTED]> wrote: > 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/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?
-- http://mail.python.org/mailman/listinfo/python-list