关于python中编码的一个小疑点
关于python中编码的一个小问题
我现在有一个python脚本,需要用到mysql,ffmpeg,还有python自己的一些拓展包。其中我在linux系统下把需要的环境配置好之后,程序能正常运行,可以显示出俩行数据,但是在windows下,我也配置了环境,可是在运行的时候会出现说编码错误:D:\新建文件夹\dejavu-master>python example.py
Traceback (most recent call last):
File "example.py", line 1, in <module>
from dejavu import Dejavu
File "D:\新建文件夹\dejavu-master\dejavu\__init__.py", line 3, in <module>
import fingerprint
File "D:\新建文件夹\dejavu-master\dejavu\fingerprint.py", line 2, in <module>
import matplotlib.mlab as mlab
File "C:\Python27\lib\site-packages\matplotlib\__init__.py", line 1048, in <m
dule>
rcParams = rc_params()
File "C:\Python27\lib\site-packages\matplotlib\__init__.py", line 897, in rc_
arams
fname = matplotlib_fname()
File "C:\Python27\lib\site-packages\matplotlib\__init__.py", line 748, in mat
lotlib_fname
fname = os.path.join(os.getcwd(), 'matplotlibrc')
File "C:\Python27\lib\ntpath.py", line 84, in join
result_path = result_path + p_path
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 1: ordinal
not in range(128)不知道上不了图,我二楼在上图
------解决思路----------------------
linux默认的是utf8,而windows却不是
并不是你加了就没事,实际上只是py文件里面涉及到的字符串编码是utf8,而你从外部输入的数据可能就不是了,所以要保持所有:源-程序内-输出保持编码一致
------解决思路----------------------
不要再dos下调试编码问题,尤其是print;
不要用IDLE调试程序,IDLE太多坑;
找个IDE吧,我还有事情,只能帮到这了
------解决思路----------------------
python中中文处理是个很大问题,下面这篇 python中文问题处理心得 可以参考一下
http://blog.xuzeshui.com/archives/103.html
我现在有一个python脚本,需要用到mysql,ffmpeg,还有python自己的一些拓展包。其中我在linux系统下把需要的环境配置好之后,程序能正常运行,可以显示出俩行数据,但是在windows下,我也配置了环境,可是在运行的时候会出现说编码错误:D:\新建文件夹\dejavu-master>python example.py
Traceback (most recent call last):
File "example.py", line 1, in <module>
from dejavu import Dejavu
File "D:\新建文件夹\dejavu-master\dejavu\__init__.py", line 3, in <module>
import fingerprint
File "D:\新建文件夹\dejavu-master\dejavu\fingerprint.py", line 2, in <module>
import matplotlib.mlab as mlab
File "C:\Python27\lib\site-packages\matplotlib\__init__.py", line 1048, in <m
dule>
rcParams = rc_params()
File "C:\Python27\lib\site-packages\matplotlib\__init__.py", line 897, in rc_
arams
fname = matplotlib_fname()
File "C:\Python27\lib\site-packages\matplotlib\__init__.py", line 748, in mat
lotlib_fname
fname = os.path.join(os.getcwd(), 'matplotlibrc')
File "C:\Python27\lib\ntpath.py", line 84, in join
result_path = result_path + p_path
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 1: ordinal
not in range(128)不知道上不了图,我二楼在上图
------解决思路----------------------
linux默认的是utf8,而windows却不是
并不是你加了就没事,实际上只是py文件里面涉及到的字符串编码是utf8,而你从外部输入的数据可能就不是了,所以要保持所有:源-程序内-输出保持编码一致
------解决思路----------------------
不要再dos下调试编码问题,尤其是print;
不要用IDLE调试程序,IDLE太多坑;
找个IDE吧,我还有事情,只能帮到这了
------解决思路----------------------
python中中文处理是个很大问题,下面这篇 python中文问题处理心得 可以参考一下
http://blog.xuzeshui.com/archives/103.html