在shell工具里面运行无问题,但是当使用dos来运行.py文件,中文全部是乱序。
开始也怀疑是字符转换的问题,在文件头定义了utf8编码,但未解决。
后面查了许多资料,确定了一下问题:dos下用的是cp936,也就是gb2312编码;而python默认用ASCII,所以运行中文的时候,会有问题。
后面的文件做了一些处理,进行解码和转码,解决了该问题,代码如下:
#!/usr/bin/env python
#-*-coding:utf8 -*-
import sys
print '参数个数为:'.decode('utf-8').encode('cp936'),len(sys.argv),'个参数。'.decode('utf-8').encode('cp936')
dos输出为: