python在安装时,默认的编码是ascii,当程序中出现非ascii编码时,python的处理常常会报这样的错UnicodeDecodeError: 'ascii' codec can't decode byte 0x?? in position 1: ordinal not in range(128),python没办法处理非ascii编码的,此时需要自己设置将python的默认编码,一般设置为utf8的编码格式。

查询系统默认编码可以在解释器中输入以下命令:

Python代码

>>>sys.getdefaultencoding()>>>sys.getdefaultencoding()

设置默认编码时使用:

Python代码

>>>sys.setdefaultencoding('utf8')>>>sys.setdefaultencoding('utf8')

可能会报AttributeError: 'module' object has no attribute 'setdefaultencoding'的错误,执行reload(sys),在执行以上命令就可以顺利通过。

此时在执行sys.getdefaultencoding()就会发现编码已经被设置为utf8的了,但是在解释器里修改的编码只能保证当次有效,在重启解释器后,会发现,编码又被重置为默认的ascii了,那么有没有办法一次性修改程序或系统的默认编码呢。

有2种方法设置python的默认编码:

一个解决的方案在程序中加入以下代码:

Python代码

importsys

reload(sys)

sys.setdefaultencoding('utf8')import sys

reload(sys)

sys.setdefaultencoding('utf8')

另一个方案是在python的Lib\site-packages文件夹下新建一个sitecustomize.py,内容为:

Python代码

# encoding=utf8

importsys

reload(sys)

sys.setdefaultencoding('utf8')# encoding=utf8

import sys

reload(sys)

sys.setdefaultencoding('utf8')

此时重启python解释器,执行sys.getdefaultencoding(),发现编码已经被设置为utf8的了,多次重启之后,效果相同,这是因为系统在python启动的时候,自行调用该文件,设置系统的默认编码,而不需要每次都手动的加上解决代码,属于一劳永逸的解决方法。

另外有一种解决方案是在程序中所有涉及到编码的地方,强制编码为utf8,即添加代码encode("utf8"),这种方法并不推荐使用,因为一旦少写一个地方,将会导致大量的错误报告,我曾经遇到这种情况,错误日志压缩之后尚有70多K,全都是这一个问题,让人有很崩溃的感觉。

python为源文件指定系统默认_Python 设置系统默认编码相关推荐

  1. android 11.0 12.0添加系统字体并且设置为默认字体

    1.概述 在11.0 12.0系统定制化开发中,在产品定制中,有产品需求对于系统字体风格不太满意,所以想要更换系统的默认字体,对于系统字体的修改也是常有的功能,而系统默认也支持增加字体,所以就来添加楷 ...

  2. PC摄像头设置 默认摄像头设置 win11 默认摄像头设置

    PC摄像头设置  默认摄像头设置  win11 默认摄像头设置 答案: 在设备管理器中,禁用用不到的虚拟摄像头.

  3. python环境变量是什么意思_python设置环境变量有什么用

    设置Python的环境变量的作用: 当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找.用户通过设置环境变量,来更好的运行进程. ...

  4. ubuntu双系统把win7设置为默认启动选项

    最近给朋友的电脑中安装了ubuntu系统,与之前的win7系统共存,每次开机默认启动的是ubuntu系统,现在想把默认启动选项设置为win7系统,我们一起看看怎么设置. 工具/原料 ubuntu16. ...

  5. python不正确的关系字符_Python系列之 - 字符编码问题

    CPU:速度快 硬盘:永久保存 2.文本编辑器存取文件的原理(nodepad++,pycharm,word) 打开编辑器就可以启动一个进程,是在内存中的,所以在编辑器编写的内容也都是存放在内存中的,断 ...

  6. android 系统亮度,android 设置系统屏幕亮度

    android 设置系统屏幕亮度 权限 /** * 获得当前屏幕亮度的模式 * SCREEN_BRIGHTNESS_MODE_AUTOMATIC=1 为自动调节屏幕亮度 * SCREEN_BRIGHT ...

  7. python为源文件指定系统默认字符编码是_系统编码、文件编码与python系统编码

    在linux中获取系统编码结果: Windows系统的编码,代码页936表示GBK编码 可以看到linux系统默认使用UTF-8编码,windows默认使用GBK编码.Linux环境下,文件默认使用U ...

  8. python系统字体_Python matplotlib修改默认字体的操作

    matplotlib库作为Python常用的数据可视化库,默认字体居然不支持中文字体,必须得吐槽一下~ 闲言少叙,开始正文 方法1:在plot中指定prop参数 使用matplotlib.font_m ...

  9. python系统监控_python psutil系统监控详解

    一.psutil模块: 1.psutil是一个跨平台库(http://pythonhosted.org/psutil/)能够轻松实现获取系统运行的进程和系统利用率(包括CPU.内存.磁盘.网络等)信息 ...

最新文章

  1. 程序员看过来!高通漏洞赏金最高1.5万美金
  2. python输入y继续运行_python – 如何使Fabric在获取退出状态后继续运行下一个命令:1?...
  3. Java——super的使用
  4. Java---取得操作系统默认的代理
  5. oracle vm安装增强功能,Linux 开发环境中为VirtualBox安装增强功能
  6. logging模块(* * * * *)
  7. 基于ASP.NET MVC框架开发Web论坛应用程序
  8. 写ios系统和安卓系统的人到底有多牛?
  9. python网络爬虫学习笔记(八):XPath的使用
  10. python语句块的定义_第五章、Python语句
  11. 把js封装到html,什么是javascript封装?
  12. ST六轴传感器LSM6DSO使用记录
  13. java 生成树形_Java实现生成Excel树形表头完整代码示例
  14. FBReader导入eclipse 和Androidstudio相关问题
  15. 【C语言】C语言中基础操作符详细讲解
  16. 改变手机状态栏颜色常见的2种方法
  17. Android笔记:Zing二维码扫描解决二维码被拉伸
  18. 微信小程序播放视频 禁止快进
  19. 如何删除PDF水印?PDF删除水印怎么操作
  20. 嵌入式优秀资源网址整理

热门文章

  1. 4款bt search
  2. RTT时钟管理篇——软硬定时器理解(二)
  3. c# 再次尝试 连接失败_手机投屏电视连接不上怎么回事?
  4. PAT乙级(1033 旧键盘打字)
  5. linux 权限拒绝,linux – 权限被拒绝,虽然文件是chmod 777
  6. 如何使用SQL计算宝宝每次吃奶的时间间隔(文末含PPT)
  7. 万字详解Oracle架构、原理、进程,学会世间再无复杂架构
  8. (赠书福利)2018 Oracle 数据技术嘉年华
  9. 详解4种微服务框架接入Istio方案
  10. YoloV5实战:手把手教物体检测