python编码问题

来源:互联网 发布:淘宝哪家窗帘便宜又好 编辑:程序博客网 时间:2024/06/08 23:14

1、UnicodeDecodeError: 'ascii' codec can't decode byte 0xe7 in position 12: ordinal not in range(128)

    解决方案1:

    在python的安装目录下的Lib目录,找到site.py,修改defsetencoding()方法 defsetencoding():    if0: #Enabletosupportlocaleawaredefaultstringencodings. 把那个if0该位if1试试。。  解决方案2:           注意python不支持中文,所以需要在代码第一行加入:# -*- coding: utf-8 -*-

       注意符号的中英文形式,例如冒号  :

2、命令行中运行python脚本,中文乱码

    解决方案:

         可以把命令窗口编码方式改为UTF8,但是再运行会出现Error0的问题。

        更改注册表:CHCP 65001

        如果还是乱码

           

cmd命令行编码设置

cmd窗口情况下:windows下cmd默认的编码是GBK

         想在windows下查看sqlite的utf-8中文需要先 执行chcp 65001把当前页换为utf-8编码

      chcp 命令:

      chcp 65001  就是换成UTF-8代码页,在命令行标题栏上点击右键,选择"属性"->"字体",将字体修改为True Type字体"LucidaConsole",然后点击确定将属性应用到当前窗口

      chcp 936 可以换回默认的GBK 

      chcp 437 是美国英语

cmd执行python中文乱码,检查系统是否为英文版,系统是英文的情况下,想要汉化,需要更改系统文件;

3、如何永久地将默认编码设置为utf-8呢?  有2种方法: 

==================================
第一个方法<不推荐>: 编辑site.py, 修改setencoding()函数, 强制设置为 utf-8 

第二个方法<推荐>: 增加一个名为 sitecustomize.py, 推荐存放的路径为 site-packages 目录下
sitecustomize.py 是在 site.py 被import 执行的, 因为 sys.setdefaultencoding() 是在 site.py 的结尾处被删除的, 所以, 可以在 sitecustomize.py 使用 sys.setdefaultencoding(). 
#file name:      
import sys  
sys.setdefaultencoding('utf-8')  

4、UnicodeDecodeError: 'gbk' codec can't decode bytes in position 28-29: illegal multibyte sequence

    可以在输出的内容前加u  例如:print  u'提示信息'


5、生成log文件或写入其他文件出现乱码:

写文件编码问题:
#创建并打开一个新文件
filename = 'E:/quality/it/pyrequest-master/log/itest.log'
fd = open(filename,mode='w',encoding='utf-8')
写入内容时,同样需要指定编码格式
handler=logging.FileHandler(log_filename,encoding='utf-8')

   


0 0
原创粉丝点击