Python2中文处理纪要的实现方法


Posted in Python onMarch 10, 2018

python2不是以unicode作为基本代码字符类型,碰到乱码的几率是远远高于python3,但即便如此,相信很多人,也不想随意的迁移到python3,这里就总结几个我平常碰到的问题及解法。

1、文件中无法使用中文注释

处理方法:

在代码中增加 # -*- coding=UTF-8 -*- ,一般加在文件头部第一行,如果第一行是脚本标志,则放在第二行(实际仍然是python正本的第一行)。

随后将文件另存为UTF-8格式。

此方法可以解决注释中有中文,及字符串立即数中包含中文的问题。

2、unicode中文变量打印出来是乱码

处理方法:

文件开始引入扩展库的部分加入以下3行代码。

import sys
reload(sys)
sys.setdefaultencoding('utf-8')

3、utf-8 及 gbk互相转换

直接看代码:

#utf-8字符串转换成GBK(GB2312及其它编码也是这样用)
print str.decode('UTF-8').encode('GBK')
#gbk转换成utf-8
print str.decode('GBK').encode('UTF-8')

4、参数中的utf-8是用大写还是小写?

通常大小写都可以,这不是python决定的,是系统的语言代码设定决定的。

5、打开utf-8的文本文件

经过1、2的设置,正常直接打开就可以,文件是什么编码,读出来就是什么编码,个别仍有不行的可以使用扩展库codecs:

import codecs
...
with codecs.open(poetry_file, "r","utf-8") as f:

6、print打印出来的结构中的汉字是乱码

print仅打印一个utf-8的变量是不会有问题的,比如

a="汉字"
print a
#会正常显示

但是如果用了接续显示,比如:

print a,
#将会显示乱码

如果是其它结构,诸如dict / list / class等,都会出现乱码。

a = ["中文","测试"]
print a
#将会显示乱码

这种情况使用基本库没有什么好办法,只能循环逐个打印内容,比如:

...
for item in items:
print item

或者整合输出,比如: print ', '.join(a)

还可以使用第三方的包,比如:

import uniout
...
listnine = ['梨', '橘子', '苹果', '香蕉']
print 'listnine list: %s' % listnine

7、变量本身显示正常,循环遍历出来的单个字符乱码

大多情况是因为字符串不是unicode编码。声明字符串的时候使用 a = u'汉字' 这样方式赋值的变量都是Unicode字符串,不会有问题。

如果是从外部传入的变量,源头情况又不知道,可以尝试转换成Unicode字符串:

str=unicode(str,"utf-8");

嗯,差不多就这些,想到再补充。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python升级提示Tkinter模块找不到的解决方法
Aug 22 Python
python中的hashlib和base64加密模块使用实例
Sep 02 Python
在Python的gevent框架下执行异步的Solr查询的教程
Apr 16 Python
python获取一组汉字拼音首字母的方法
Jul 01 Python
python Django模板的使用方法
Jan 14 Python
深入理解python中函数传递参数是值传递还是引用传递
Nov 07 Python
解决已经安装requests,却依然提示No module named requests问题
May 18 Python
python opencv人脸检测提取及保存方法
Aug 03 Python
python微信公众号之关注公众号自动回复
Oct 25 Python
django 外键model的互相读取方法
Dec 15 Python
Python库安装速度过慢解决方案
Jul 14 Python
Python实现粒子群算法的示例
Feb 14 Python
python实现冒泡排序算法的两种方法
Mar 10 #Python
Python使用pyh生成HTML文档的方法示例
Mar 10 #Python
tensorflow获取变量维度信息
Mar 10 #Python
TensorFlow变量管理详解
Mar 10 #Python
TensorFlow神经网络优化策略学习
Mar 09 #Python
TensorFlow实现AutoEncoder自编码器
Mar 09 #Python
TensorFlow实现MLP多层感知机模型
Mar 09 #Python
You might like
一个用于网络的工具函数库
2006/10/09 PHP
php下封装较好的数字分页方法
2010/11/23 PHP
PHP处理二进制数据的实现方法
2016/06/13 PHP
PHP入门教程之数组用法汇总(创建,删除,遍历,排序等)
2016/09/11 PHP
TP5框架实现一次选择多张图片并预览的方法示例
2020/04/04 PHP
解决jquery的datepicker的本地化以及Today问题
2012/05/23 Javascript
javascript动画对象支持加速、减速、缓入、缓出的实现代码
2012/09/30 Javascript
做好七件事帮你提升jQuery的性能
2014/02/06 Javascript
JavaScript中的继承方式详解
2015/02/11 Javascript
小议JavaScript中Generator和Iterator的使用
2015/07/29 Javascript
JS原型对象的创建方法详解
2016/06/16 Javascript
js倒计时小实例(多次定时)
2016/12/08 Javascript
Angular使用ng-messages与PHP进行表单数据验证
2016/12/28 Javascript
vue.js利用defineProperty实现数据的双向绑定
2017/04/28 Javascript
jQuery实现的鼠标滚轮控制图片缩放功能实例
2017/10/14 jQuery
vue实现select下拉显示隐藏功能
2019/09/30 Javascript
Vue.js组件使用props传递数据的方法
2019/10/19 Javascript
使用Python对IP进行转换的一些操作技巧小结
2015/11/09 Python
python游戏开发之视频转彩色字符动画
2019/04/26 Python
python使用paramiko模块通过ssh2协议对交换机进行配置的方法
2019/07/25 Python
python实现网站用户名密码自动登录功能
2019/08/09 Python
Python中的 sort 和 sorted的用法与区别
2019/08/10 Python
python  ceiling divide 除法向上取整(或小数向上取整)的实例
2019/12/27 Python
PyCharm2019.3永久激活破解详细图文教程,亲测可用(不定期更新)
2020/10/29 Python
世界上最大的罕见唱片、CD和音乐纪念品网上商店:991.com
2018/05/03 全球购物
椰子猫砂:CatSpot
2018/08/27 全球购物
澳大利亚音乐商店:Bava’s Music City
2019/05/05 全球购物
NYX Professional Makeup俄罗斯官网:世界知名的化妆品品牌
2019/12/26 全球购物
党员入党表决心的话
2014/03/11 职场文书
宝宝满月酒主持词和仪式流程
2014/03/27 职场文书
大学生志愿者活动总结
2014/06/27 职场文书
会计岗位说明书
2014/07/29 职场文书
党员违纪检讨书怎么写
2014/11/01 职场文书
幼师个人总结范文
2015/02/28 职场文书
战友聚会致辞
2015/07/28 职场文书
vue3.0 数字翻牌组件的使用方法详解
2022/04/20 Vue.js