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实现Sqlite将字段当做索引进行查询的方法
Jul 21 Python
基于Python的接口测试框架实例
Nov 04 Python
python实现随机森林random forest的原理及方法
Dec 21 Python
对numpy Array [: ,] 的取值方法详解
Jul 02 Python
Python之使用adb shell命令启动应用的方法详解
Jan 07 Python
pandas 数据索引与选取的实现方法
Jun 21 Python
Python通过Manager方式实现多个无关联进程共享数据的实现
Nov 07 Python
Python综合应用名片管理系统案例详解
Jan 03 Python
tensorflow 获取所有variable或tensor的name示例
Jan 04 Python
python中with用法讲解
Feb 07 Python
浅谈python输出列表元素的所有排列形式
Feb 26 Python
python 实现体质指数BMI计算
May 26 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判断服务器是否支持Gzip压缩功能
2013/09/24 PHP
使用ThinkPHP+Uploadify实现图片上传功能
2014/06/26 PHP
PHP+Ajax检测用户名或邮件注册时是否已经存在实例教程
2014/08/23 PHP
phpstorm配置Xdebug进行调试PHP教程
2014/12/01 PHP
php从csv文件读取数据并输出到网页的方法
2015/03/14 PHP
谈谈PHP中substr和substring的正确用法及相关参数的介绍
2015/12/16 PHP
PHPExcel中文帮助手册|PHPExcel使用方法(分享)
2017/06/09 PHP
前端开发必须知道的JS之原型和继承
2010/07/06 Javascript
javascript高级学习笔记整理
2011/08/14 Javascript
三种动态加载js的jquery实例代码另附去除js方法
2014/04/30 Javascript
JavaScript sub方法入门实例(把字符串显示为下标)
2014/10/17 Javascript
js实现键盘控制DIV移动的方法
2015/01/10 Javascript
AngularJS 实现弹性盒子布局的方法
2016/08/30 Javascript
最全面的JS倒计时代码
2016/09/17 Javascript
前端编码规范(3)JavaScript 开发规范
2017/01/21 Javascript
Vue的百度地图插件尝试使用
2017/09/06 Javascript
使用Ajax和Jquery配合数据库实现下拉框的二级联动的示例
2018/01/25 jQuery
AngularJS使用$http配置对象方式与服务端交互方法
2018/08/13 Javascript
jQuery实现的响应鼠标移动方向插件用法示例【附源码下载】
2018/08/28 jQuery
javascript实现固定侧边栏
2021/02/09 Javascript
[05:37]DOTA2-DPC中国联赛 正赛 Elephant vs iG 选手采访
2021/03/11 DOTA
在Python程序员面试中被问的最多的10道题
2017/12/05 Python
python代码过长的换行方法
2018/07/19 Python
在PyCharm下打包*.py程序成.exe的方法
2018/11/29 Python
python中多个装饰器的调用顺序详解
2019/07/16 Python
python自动化实现登录获取图片验证码功能
2019/11/20 Python
用css3实现转换过渡和动画效果
2020/03/13 HTML / CSS
基于CSS3的animation属性实现微信拍一拍动画效果
2020/06/22 HTML / CSS
CSS3 对过渡(transition)进行调速以及延时
2020/10/21 HTML / CSS
2019年.net常见面试问题
2012/02/12 面试题
劳动实践课感言
2014/02/01 职场文书
四风批评与自我批评发言稿
2014/10/14 职场文书
走进科学观后感
2015/06/18 职场文书
工作简历的自我评价
2019/05/16 职场文书
Nginx内网单机反向代理的实现
2021/11/07 Servers
聊聊SpringBoot自动装配的魔力
2021/11/17 Java/Android