|
|
|
|
| 这个问题是关于在windows中一个特殊符号显示的问题 |
 这个问题是关于在windows中一个特殊符号显示的问题 - ehu4ever [ 2005-08-20 22:13 | 859 byte(s)]
 热烈庆祝热烈庆祝,熬到了凌晨2点,终于××××的搞定了 - ehu4ever [ 2005-08-21 02:34 | 715 byte(s)]
 Re: 这个问题是关于在windows中一个特殊符号显示的问题 - ehu4ever [ 2005-08-20 22:15 | 22 byte(s)]
|
|
|
|
[Original]
[Print]
[Top]
|
假设目录dir中有一个文件file,file的文件名中有个符号©,一个圆圈中有一个字母c,就是copyright的意思。
我在python中用print '
'.join([f for f in os.listdir(dir)]),
file显示的文件名中符号©显示为?(一个问号)
请问这个问题怎样解决?
console里的输出是这样:
>>> dir = 'e:\'
>>> print dir
e:
>>> import os
>>> print '
'.join([f for f in os.listdir(dir)])
…………
John Wiley & Sons ? 2004 - John Wiley And Sons Professional Jakarta Struts.txt
…………
>>> import sys
>>> sys.stdout.encoding
'cp936'
>>>
|
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
>>> dir = u'e:\copyright'
>>> '
'.join([f.encode('cp936') for f in os.listdir(dir)])
Traceback (most recent call last):
File "<stdin>", line 1, in ?
UnicodeEncodeError: 'gbk' codec can't encode character u'xa9' in position 18: illegal multibyte seq
uence
>>> '
'.join([f.encode('utf8') for f in os.listdir(dir)])
'John Wiley & Sons xc2xa9 2004 - John Wiley And Sons Professional Jakarta Struts.txt'
>>>
这样这个文件名在gtk这种只显示unicode的GUI上显示的时候就会正常地显示copyright符号了
|
|
|
[Original]
[Print]
[Top]
|
|
|