修改python默认的编码方式

今天碰到了 python 编码问题, 报错信息如下
Traceback (most recent call last):
  File "ntpath.pyc", line 108, in join
UnicodeDecodeError: 'ascii' codec can't decode byte 0xa1 in position 36: ordinal not in range(128)

显然是当前的编码为ascii, 无法解析0xa1(十进制为161, 超过上限128). 进入python console后, 发现默认编码确实是 ascii, 验证过程为:

>>>import sys
>>>sys.getdefaultencoding()
#输出为ascii.

#在使用 sys.setdefaultencoding('utf8'), 报错!
>>>sys.setdefaultencoding('utf8')
AttributeError: 'module' object has no attribute 'setdefaultencoding'

google 到一个 limodou 回复的帖子, http://www.linuxforum.net/forum/showflat.php?Cat=&Board=python&Number=580942&page=15&view=collapsed&sb=5&o=

limodou讲到, sys.setdefaultencoding 方法在python导入 site.py 后就删除了, 不能再被调用了.  在确定sys已经导入的情况下, 可以reload sys这个模块, 之后, 再 sys.setdefaultencoding('utf8')
>>>reload(sys)
>>>sys.setdefaultencoding('utf8')

确实有效, 根据 limodou 讲解,  site.py 是 python 解释器启动后, 默认加载的一个脚本. 如果使用 python -S 启动的话, 将不会自动加载 site.py.

上面写的挺啰嗦的.

==================================
如何永久地将默认编码设置为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:  sitecustomize.py
import sys  
sys.setdefaultencoding('utf-8')   

既然 sitecustomize.py 能被自动加载,  所以除了设置编码外, 也可以设置一些其他的东西. 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/464097.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql日志种类、二进制日志模式、mysqlbinlog解析二进制日志

mysql日志的种类 二进制日志&#xff08;binary log&#xff09;&#xff1a;记录数据更新的操作&#xff0c;mysqlbinlog 可查看二进制日志文件 错误日志&#xff08;error log&#xff09;&#xff1a;记录mysql服务进程mysqld的启动、关闭和运行时的错误信息 慢查询日志&…

Linux IO多路复用之epoll网络编程,高并发的使用例子 (含源码)

本章节是用基本的Linux基本函数加上epoll调用编写一个完整的服务器和客户端例子&#xff0c;可在Linux上运行&#xff0c;客户端和服务端的功能如下: 客户端从标准输入读入一行&#xff0c;发送到服务端 服务端从网络读取一行&#xff0c;然后输出到客户端 客户端收到服务端…

c#中Excel数据的导入、导出

/**//// <summary>/// 导出到 Excel 文件/// </summary>/// <param name"fileName">含完整路径</param>/// <param name"dataTable">含字段标题名</param>publicvoidExpExcel(stringfileName ,DataTable dataTable){ …

你对Linux下的实时性应该多点了解

作者简介顺刚(网名:沐多)&#xff0c;一线码农&#xff0c;从事工控行业&#xff0c;目前在一家工业自动化公司从事工业实时现场总线开发工作&#xff0c;喜欢钻研Linux内核及xenomai&#xff0c;个人博客 wsg1100&#xff0c;欢迎大家关注&#xff01;本文讲述一些有利于提高x…

ria website

http://www.36ria.com/

Epoll例子的使用

第一部分&#xff1a;Epoll简介 问题 : Select,Poll和Epoll的区别 答案 : Epoll和Select的区别 1. 遍历方式的区别 。select判断是否有事件发生是遍历的&#xff0c;而epoll是事件响应的&#xff0c;一旦句柄上有事件来了&#xff0c;就马上选出来。 2. 数目的区别。select一…

DHCP机制

DHCP概念&#xff1a;局域网的网络协议&#xff0c;使用UDP协议工作&#xff0c;在工作过程中&#xff0c;它有两个对象&#xff0c;DHCP客户端和DHCP服务端&#xff0c;DHCP服务运行在&#xff16;&#xff17;端口和&#xff16;&#xff18;端口。 用途&#xff1a;&#xf…

C#中写入Excel

usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Web;usingSystem.Data;namespaceCommon.BaseClass{publicclassFileExport{#region导出文件为 Excel文件 文本格式///<summary>///导出文件为 Excel文件///</summary>///<param name&…

这C语言写法谁见过

这是一个读者发给我的&#xff0c;我自己也没有见过这样的写法&#xff0c;有谁知道的&#xff0c;可以评论说下。谢谢各位&#xff01;

一号团队-团队任务3:每日立会(2018-12-01)

一.基本信息 团队序号&#xff1a;一号 开发的软件名称&#xff1a;Java教学官网 撰写人&#xff1a;张浩洋 学号:2016035107283 职务:项目经理 二.团队汇报 1.汇报文字版 一号团队全体成员与2018年12月01日在第一组项目群中针对2018年11月30日工作任务进行汇报&#xff0c;汇总…

老陈学 C++ 序列之二: 友元函数

class one{ public: one(){}; operator two ( ) const { return two(); } friend ostream& operator << ( ostream& os, const one& o) //成员函数还是全局函数&#xff1f; { return os << " i " << o.i; } int i; …

40 岁的中年失业

大家好&#xff0c;我是写代码的篮球球痴&#xff0c;昨天发了一篇文章&#xff0c;有一个朋友转发了&#xff0c;然后看到有人评论&#xff0c;如下&#xff1a;前两天有朋友问我&#xff0c;说腾讯裁员好严重&#xff0c;还有如何如何&#xff0c;我是这样回答的。很多事情我…

Linux/Windows系统内核性能调优

做过Linux平台性能测试的童鞋平时可能会遇到如下问题&#xff1a; 1、 TCP端口号不够用导致并发上不去&#xff08;即与服务器端建立新连接失败&#xff09; 2、 TIME_WAIT状态连接过多导致应用服务器&#xff08;Nginx、Haproxy、Redis、Tomcat等&#xff09;性能下降或假死…

hwclock: Open of /dev/rtc failed, errno=19: No such device.

今早一台服务器故障&#xff0c;后来有空上来查看故障日志&#xff0c;未果&#xff0c;发现时间不对&#xff0c;如下&#xff1a; [rootcache06 ~]# hwclock -w Cannot access the Hardware Clock via any known method. Use the --debug option to see the details of our s…

MCU复位和程序启动那些事

大家好&#xff0c;这篇文章转自电源漫谈&#xff0c;文章从专业的角度说明了MCU复位经过的过程&#xff0c;对大家学习很有帮助。MCU通常会在工作之前&#xff0c;先经历复位和启动的一个过程&#xff0c;在用户使用过程中往往在这个阶段的工作不是那么的清楚&#xff0c;这里…

逆波兰表达式[栈 C 语言 实现]

逆波兰表达式 逆波兰表达式又叫做后缀表达式。在通常的表达式中&#xff0c;二元运算符总是置于与之相关的两个运算对象之间&#xff0c;这种表示法也称为中缀表示。波兰逻辑学家J.Lukasiewicz于1929年提出了另一种表示表达式的方法&#xff0c;按此方法&#xff0c;每一运算符…

FireFox不支持cursor:hand

这个在IE/Firefox下都支持可以使用cursor:pointer;转载于:https://www.cnblogs.com/kaixin110/archive/2007/08/22/865287.html

Red Hat 6.0 Installation Steps

1) 注册和下载 - 需要一个公司email地址来接收RH的确认邮件 https://cn.redhat.com/products/enterprise-linux/server/download.html 下载免费红帽企业 Linux 30 天评估版 - 注册完毕转入下载页面 https://access.redhat.com/downloads/ -选择免费评估版本, 收到确认邮件, 找到…

若有所思

今天出来​逛了下&#xff0c;没有准备文章&#xff0c;刚好一个朋友有一段思考&#xff0c;给大家分享下。深圳动物园是一个值得去的地方​-----佚名海边的夏天&#xff0c;太阳公公当空照&#xff0c;照的大地滚烫&#xff0c;海水湛蓝。人们都躲到树荫下&#xff0c;享受舶风…

HDU 4383 To The Moon 解题报告

HDU 4383 To The Moon 题意翻译 已知一个长为\(n\)的序列\(a\)&#xff0c;你需要进行下面的四种操作。 C l r d 将区间\([l,r]\)中的数加上\(d\),同时时间加\(1\) Q l r 查询当前时间区间\([l,r]\)中所有数的和 H l r t 查询时间为\(t\)时区间\([l,r]\)中所有数的和 B t 将当前…