用python查看和更改系统默认编码
用python查看和更改系统默认编码
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代码
import sys
reload(sys)
sys.setdefaultencoding('utf8')
import sys reload(sys) sys.setdefaultencoding('utf8')
另一个方案是在python的Lib\site-packages文件夹下新建一个sitecustomize.py,内容为:
Python代码
# encoding=utf8
import sys
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查看和更改系统默认编码相关推荐
- windows怎么更改系统默认编码为utf-8?(避免编译从linux系统弄过来的c文件printf出现乱码问题)(beta版:使用unicode utf-8提供全球语言支持)
这样linux和windows的默认系统编码就统一成unicode:utf-8了 但是,也会出现一些意想不到的情况,比如:
- python为源文件指定系统默认_Python 设置系统默认编码
python在安装时,默认的编码是ascii,当程序中出现非ascii编码时,python的处理常常会报这样的错UnicodeDecodeError: 'ascii' codec can't deco ...
- Mac如何更改系统默认的播放器?
Mac怎么更改系统默认的播放器?Mac系统中想要更换播放器,该怎么更换呢?下面我们就来看看mac默认播放器的更换方法,需要的朋友可以参考下. Mac下面如何设置或更改默认的视频播放器,之前看到一些经验 ...
- windows10 更改系统默认程序
更改系统默认打开程序 点击wind10系统左下角windows图标 2.点击"设置" 3.在设置界面选择"应用" 4.在侧边栏选择"默认应用" ...
- 查看windows系统默认编码 修改windows系统默认编码
在Windows平台下,进入DOS窗口,输入:chcp 可以得到操作系统的代码页信息,你可以从控制面板的语言选项中查看代码页对应的详细的字符集信息. 例如: 我的活动代码页为:936,它对应的编码格式 ...
- python为源文件指定系统默认字符编码是_系统编码、文件编码与python系统编码
在linux中获取系统编码结果: Windows系统的编码,代码页936表示GBK编码 可以看到linux系统默认使用UTF-8编码,windows默认使用GBK编码.Linux环境下,文件默认使用U ...
- ubuntu更改默认python版本_更改Ubuntu默认python版本的方法
1.查看基本信息 # 列出所有已安装python ls /usr/bin/python* #查看默认的 Python 版本信息: python --version 2.基于用户修改 默认Python ...
- [Linux] 修改系统默认编码
locale 命令 locale 命令用以设置程序运行的语言环境. locale 设置语言环境的命名规则为 Language_area.charset,例如 en_US.utf8 表示语言为英语,地区 ...
- html设置使用系统默认字体,怎样更改系统默认字体-太平洋IT百科
电脑已和我们的生活密不可分,在使用过程中每天都要面对同样的字体你是否已感到枯燥呢?其实默认的一些设置是可以自己手动更改的,显得非常活泼.顺眼.有个性.电脑默认的显示字随心所欲更改,新技能赶快get√起 ...
最新文章
- Nuaa Q1090
- 读取并修改App.config文件(转载)
- 【好书推荐】《Web全栈工程师的自我修养》
- DBA(六):MHA集群
- 【栈】栈的基本操作实现模板的总结
- SQL基础【十九、触发器】(不建议使用触发器的原因)
- I2C总线之(一)---概述
- 信息学奥赛一本通(1139:整理药名)
- 纯JS日历控件自动输入日期到TextBox、文本框当中
- 系統封裝(4)--封裝系統(龍帝國封裝工具)
- 洛谷T37537 公主的考验
- AirFlow_使用
- CSDN学生大本营“每日进步”文章
- Modbus 协议从站开发通信西门子 PLC
- vscode 链接不到扩展商店
- 第十一章 SQL谓词 %INLIST
- 2020焊工(技师)考试及焊工(技师)模拟考试系统
- 图文轻松理解计算机网络五层架构
- 在线画图工具-chord diagram和弦图
- 爬虫进行isca-speech分会场的pdf批量下载部分问题解决
热门文章
- クリムゾンガールズ 汉化补丁(BUG修正)
- 让Windows CE 6.0 R2支持.NET CF 3.5
- 梦幻群侠传5帮派修炼_梦幻封妖传5门派技能介绍 | 手游网游页游攻略大全
- 函数用法r语言_R语言中的apply函数族
- Android 系统应用Setting开发总结
- Video Analysis 相关领域解读之Video Captioning(视频to文字描述)
- Babel 6.25 版本发布,JavaScript 编译器
- (二十)WebGIS中图层树功能的设计和实现
- 【转】远程桌面 剪切板复制文件失效解决方法
- hadoop: hbase1.0.1.1 伪分布安装