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 相关文章推荐
go语言计算两个时间的时间差方法
Mar 13 Python
python从sqlite读取并显示数据的方法
May 08 Python
python实现SMTP邮件发送功能
Jun 16 Python
Python数据分析之如何利用pandas查询数据示例代码
Sep 01 Python
详解pandas删除缺失数据(pd.dropna()方法)
Jun 25 Python
python @classmethod 的使用场合详解
Aug 23 Python
Mac 使用python3的matplot画图不显示的解决
Nov 23 Python
python进程池实现的多进程文件夹copy器完整示例
Nov 27 Python
python pyenv多版本管理工具的使用
Dec 23 Python
Python continue语句实例用法
Feb 06 Python
浅析pip安装第三方库及pycharm中导入第三方库的问题
Mar 10 Python
梳理总结Python开发中需要摒弃的18个坏习惯
Jan 22 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
全国中波电台频率表
2020/03/11 无线电
不用GD库生成当前时间的PNG格式图象的程序
2006/10/09 PHP
PHP图片等比缩放类SimpleImage使用方法和使用实例分享
2014/04/10 PHP
ASP和PHP实现生成网站快捷方式并下载到桌面的方法
2014/05/08 PHP
smarty中post用法实例
2014/11/28 PHP
php写入数据到CSV文件的方法
2015/03/14 PHP
javascript的对话框详解与参数
2007/03/08 Javascript
两个DIV等高的JS的实现代码
2007/12/23 Javascript
Javascript 键盘keyCode键码值表
2009/12/24 Javascript
JavaScript中getUTCSeconds()方法的使用详解
2015/06/11 Javascript
使用JS轻松实现ionic调用键盘搜索功能(超实用)
2016/09/06 Javascript
详解vue2.0的Element UI的表格table列时间戳格式化
2017/06/13 Javascript
vue-router动态设置页面title的实例讲解
2018/08/30 Javascript
JavaScript实现新年倒计时效果
2018/11/17 Javascript
用Vue.js方法创建模板并使用多个模板合成
2019/06/28 Javascript
用python分割TXT文件成4K的TXT文件
2009/05/23 Python
深入Python解释器理解Python中的字节码
2015/04/01 Python
合并百度影音的离线数据( with python 2.3)
2015/08/04 Python
python执行使用shell命令方法分享
2017/11/08 Python
Python验证文件是否可读写代码分享
2017/12/11 Python
python实现支付宝当面付(扫码支付)功能
2018/05/30 Python
python并发编程 Process对象的其他属性方法join方法详解
2019/08/20 Python
python中复数的共轭复数知识点总结
2020/12/06 Python
python实现计算图形面积
2021/02/22 Python
平面设计自荐信
2013/10/07 职场文书
交通法规咨询中心工作职责
2013/11/27 职场文书
优秀学生获奖感言
2014/02/15 职场文书
内刊编辑求职自荐书范文
2014/02/19 职场文书
中国梦团日活动总结
2014/07/07 职场文书
党员学习正风肃纪思想汇报
2014/09/12 职场文书
基层党组织建设整改方案
2014/09/16 职场文书
2014年学校后勤工作总结
2014/12/06 职场文书
党支部意见范文
2015/06/02 职场文书
葬礼主持词
2015/07/02 职场文书
培训心得体会怎么写
2016/01/25 职场文书
swagger如何返回map字段注释
2021/07/03 Java/Android