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中lambda的用法及其与def的区别解析
Jul 28 Python
python开启多个子进程并行运行的方法
Apr 18 Python
python使用wxpython开发简单记事本的方法
May 20 Python
Python实现多线程抓取妹子图
Aug 08 Python
Python学习入门之区块链详解
Jul 25 Python
python 获取当天凌晨零点的时间戳方法
May 22 Python
详解python中Numpy的属性与创建矩阵
Sep 10 Python
Python饼状图的绘制实例
Jan 15 Python
python支持多线程的爬虫实例
Dec 21 Python
详解Python修复遥感影像条带的两种方式
Feb 23 Python
Python 保存加载mat格式文件的示例代码
Aug 04 Python
Pycharm安装第三方库失败解决方案
Nov 17 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设计模式 Command(命令模式)
2011/06/26 PHP
PHP中多线程的两个实现方法
2016/10/14 PHP
jQuery autocomplete插件修改
2009/04/17 Javascript
Javascript页面添加到收藏夹的简单方法
2013/08/07 Javascript
js 页面元素的几个用法总结
2013/11/18 Javascript
jQuery使用attr()方法同时设置多个属性值用法实例
2015/03/26 Javascript
个人总结的一些JavaScript技巧、实用函数、简洁方法、编程细节
2015/06/10 Javascript
JS中Eval解析JSON字符串的一个小问题
2016/02/21 Javascript
javascript使用 concat 方法对数组进行合并的方法
2016/09/08 Javascript
jQuery实现的多张图无缝滚动效果【测试可用】
2016/09/12 Javascript
JS实现的RGB网页颜色在线取色器完整实例
2016/12/21 Javascript
JavaScript转换数据库DateTime字段类型方法
2017/06/27 Javascript
深入理解基于vue-cli的vuex配置
2017/07/24 Javascript
深入解析nodejs HTTP服务
2017/07/25 NodeJs
js中数组常用方法总结(推荐)
2019/04/09 Javascript
vue父子组件通信的高级用法示例
2019/08/29 Javascript
Js逆向实现滑动验证码图片还原的示例代码
2020/03/10 Javascript
[01:55]2014DOTA2国际邀请赛 BBC正赛第一天总结
2014/07/10 DOTA
Python单例模式实例详解
2017/03/01 Python
利用PyInstaller将python程序.py转为.exe的方法详解
2017/05/03 Python
Python import与from import使用及区别介绍
2018/09/06 Python
Ubuntu下Python+Flask分分钟搭建自己的服务器教程
2019/11/19 Python
pytorch 状态字典:state_dict使用详解
2020/01/17 Python
使用Tensorflow实现可视化中间层和卷积层
2020/01/24 Python
Python获取、格式化当前时间日期的方法
2020/02/10 Python
使用PyQt5实现图片查看器的示例代码
2020/04/21 Python
Tensorflow之MNIST CNN实现并保存、加载模型
2020/06/17 Python
css3实现的下拉菜单效果示例
2014/01/22 HTML / CSS
联想墨西哥官方网站:Lenovo墨西哥
2016/08/17 全球购物
敏捷开发的主要原则都有哪些
2015/04/26 面试题
学校周年庆活动方案
2014/08/22 职场文书
刑事上诉状范文
2015/05/22 职场文书
寻找最美乡村教师观后感
2015/06/18 职场文书
法定代表人免职证明
2015/06/24 职场文书
如何使用Python实现一个简易的ORM模型
2021/05/12 Python
PostgreSQL 插入INSERT、删除DELETE、更新UPDATE、事务transaction
2022/04/12 PostgreSQL