Python中文编码那些事


Posted in Python onJune 25, 2014

首先,要明白encode()和decode()的区别

 encode()的作用是将Unicode编码的字符串转换为其他编码格式。

例如: st1.encode("utf-8")  这句话的作用是将Unicode编码的st1编码为utf-8编码的字符串

decode()的作用是把其他编码格式的字符串转换成Unicode编码的字符串。

例如: st2.decode("utf-8") 这句话的作用是将utf-8编码的字符串st2解码为Unicode编码的字符串

第二,除Unicode编码的字符串以外,任何一种编码的字符串要想转换为其他编码格式,必须先解码后编码

非Unicode编码--> Unicode编码-->非Unicode编码

例如,utf-8编码的字符串st想要转换为gbk编码的字符串,必须经过以下步骤:

st=st.decode("utf-8") #解码为Unicode编码

st=st.encode("gbk")  #从Unicode编码编码为gbk编码

第三,我们经常使用的utf-8编码还分为有BOM的和无BOM的。

第四:关于json文件的中文编码。用Python读取Json文件时经常用到json.load()函数,该函数对json文件的格式是有要求的

1)json文件是utf-8 without BOM编码的,那么可以直接用json.load(filename)函数读取json文件的内容

2)json文件是utf-8 with BOM编码的,不能用json.load()函数读取,json.load()不能正确识别

3)json文件时其他编码的,比如gbk, 要把json文件的编码格式作为一个参数传给json.load():

eg. json.load(filename,"gbk")

第五,怎么查看并且设置自己文件的编码呢?

介绍一个个人比较喜欢的工具"Nodtepad++",随便一个软件管家里就与一键安装。

用这个工具你可以方便的查看自己的文件的当前编码,并可以轻松转换成任意其他编码格式

Python 相关文章推荐
python实现搜索指定目录下文件及文件内搜索指定关键词的方法
Jun 28 Python
一个Python最简单的接口自动化框架
Jan 02 Python
django解决跨域请求的问题详解
Jan 20 Python
Python爬虫之UserAgent的使用实例
Feb 21 Python
Python实现的文轩网爬虫完整示例
May 16 Python
Python3 列表,数组,矩阵的相互转换的方法示例
Aug 05 Python
Python使用__new__()方法为对象分配内存及返回对象的引用示例
Sep 20 Python
Python Numpy数组扩展repeat和tile使用实例解析
Dec 09 Python
Pytorch 的损失函数Loss function使用详解
Jan 02 Python
python判断一个变量是否已经设置的方法
Aug 13 Python
如何通过python实现IOU计算代码实例
Nov 02 Python
Python操作PostgreSql数据库的方法(基本的增删改查)
Dec 29 Python
教你如何在Django 1.6中正确使用 Signal
Jun 22 #Python
python抓取网页时字符集转换问题处理方案分享
Jun 19 #Python
python在linux中输出带颜色的文字的方法
Jun 19 #Python
解决windows下Sublime Text 2 运行 PyQt 不显示的方法分享
Jun 18 #Python
win7 下搭建sublime的python开发环境的配置方法
Jun 18 #Python
Python写的贪吃蛇游戏例子
Jun 16 #Python
Python中的yield浅析
Jun 16 #Python
You might like
整合了前面的PHP数据库连接类~~做成一个分页类!
2006/11/25 PHP
用穿越火线快速入门php面向对象
2012/02/22 PHP
基于PHP array数组的教程详解
2013/06/05 PHP
thinkPHP5项目中实现QQ第三方登录功能
2017/10/20 PHP
Yii框架核心组件类实例详解
2019/08/06 PHP
PHP Trait功能与用法实例分析
2020/06/03 PHP
js 实现在离开页面时提醒未保存的信息(减少用户重复操作)
2013/01/16 Javascript
JQuery 操作/获取table具体代码
2013/06/13 Javascript
jQuery对于显示和隐藏等常用状态的判断方法
2014/12/13 Javascript
关于JS中的方法是否加括号的问题
2016/07/27 Javascript
AngularJs 常用的过滤器
2017/05/15 Javascript
微信小程序实现验证码获取倒计时效果
2018/02/08 Javascript
jQuery实现动态添加和删除input框实例代码
2019/03/26 jQuery
vue实现带过渡效果的下拉菜单功能
2020/02/19 Javascript
vue 组件之间事件触发($emit)与event Bus($on)的用法说明
2020/07/28 Javascript
解决VUE 在IE下出现ReferenceError: Promise未定义的问题
2020/11/07 Javascript
Python探索之URL Dispatcher实例详解
2017/10/28 Python
python SQLAlchemy的Mapping与Declarative详解
2019/07/04 Python
Python安装selenium包详细过程
2019/07/23 Python
python对验证码降噪的实现示例代码
2019/11/12 Python
基于python+selenium的二次封装的实现
2020/01/06 Python
python 日志 logging模块详细解析
2020/03/31 Python
Pandas将列表(List)转换为数据框(Dataframe)
2020/04/24 Python
Python实现捕获异常发生的文件和具体行数
2020/04/25 Python
Python读取xlsx数据生成图标代码实例
2020/08/12 Python
使用JS+CSS3技术:让你的名字动起来
2013/04/27 HTML / CSS
澳大利亚现代波西米亚风格女装网站:Bohemian Traders
2018/04/16 全球购物
世界上最受欢迎的花店:1-800-Flowers.com
2020/06/01 全球购物
不用游标的SQL语句有哪些
2012/09/07 面试题
Unix/Linux开发面试题
2016/08/16 面试题
自荐信怎么写呢?
2013/12/09 职场文书
2014年党员自我剖析材料
2014/10/07 职场文书
老公出轨后的保证书
2015/05/08 职场文书
安全伴我行主题班会
2015/08/13 职场文书
详解Java实践之适配器模式
2021/06/18 Java/Android
Python中可变和不可变对象的深入讲解
2021/08/02 Python