遇到中文问题一个基本思路是可以全部转为unicode字符处理,这样跨平台不会乱码。
Example:
#!/usr/bin/env python
#coding:utf8
import os
os.makedirs(u"一/二/三")
字符串"一/二/三"强制转码为unicode(当然代码文件本身还是utf8编码的)。这段代码无论在windows还是linux下运行都不会乱码。
Result:
windows:
C:\Users\FJP>python C:\Users\FJP\Desktop\test.py
C:\Users\FJP>dir 一
驱动器 C 中的卷没有标签。
卷的序列号是 9282-B67F
C:\Users\FJP\一 的目录
2015/03/10 周二 下午 10:20 <DIR> .
2015/03/10 周二 下午 10:20 <DIR> ..
2015/03/10 周二 下午 10:20 <DIR> 二
0 个文件 0 字节
3 个目录 75,019,636,736 可用字节
C:\Users\FJP>dir 一\二
驱动器 C 中的卷没有标签。
卷的序列号是 9282-B67F
C:\Users\FJP\一\二 的目录
2015/03/10 周二 下午 10:20 <DIR> .
2015/03/10 周二 下午 10:20 <DIR> ..
2015/03/10 周二 下午 10:20 <DIR> 三
0 个文件 0 字节
3 个目录 75,019,702,272 可用字节
Linux:
~$ chmod +x test.py
~$ ./test.py
~$ ls 一
二
~$ ls 一/二
三
~$
Example:
#!/usr/bin/env python
#coding:utf8
import os
os.makedirs(u"一/二/三")
字符串"一/二/三"强制转码为unicode(当然代码文件本身还是utf8编码的)。这段代码无论在windows还是linux下运行都不会乱码。
Result:
windows:
C:\Users\FJP>python C:\Users\FJP\Desktop\test.py
C:\Users\FJP>dir 一
驱动器 C 中的卷没有标签。
卷的序列号是 9282-B67F
C:\Users\FJP\一 的目录
2015/03/10 周二 下午 10:20 <DIR> .
2015/03/10 周二 下午 10:20 <DIR> ..
2015/03/10 周二 下午 10:20 <DIR> 二
0 个文件 0 字节
3 个目录 75,019,636,736 可用字节
C:\Users\FJP>dir 一\二
驱动器 C 中的卷没有标签。
卷的序列号是 9282-B67F
C:\Users\FJP\一\二 的目录
2015/03/10 周二 下午 10:20 <DIR> .
2015/03/10 周二 下午 10:20 <DIR> ..
2015/03/10 周二 下午 10:20 <DIR> 三
0 个文件 0 字节
3 个目录 75,019,702,272 可用字节
Linux:
~$ chmod +x test.py
~$ ./test.py
~$ ls 一
二
~$ ls 一/二
三
~$