Python中文处理:str与unicode
来源:互联网 发布:凡科互动 游戏源码 编辑:程序博客网 时间:2024/05/21 22:33
使用python2.x做中文的文本挖掘,遇到了几个坑,现总结如下:
1. 默认的defaultcoding:ascii
UnicodeDecodeError: ‘ascii’ codec can’t decode byte ……
如果遇到了上述错误,就应该好好检查一下python文件的编码格式了
python默认使用defaultencoding=ascii,若你没注意这一点直接以“utf-8”格式进行转换,将会报错
因此,建议编码的时候养成好习惯,切记一定要指定文件的编码格式
# -*- coding: utf-8 -*-<div class="crayon-pre" style="font-size: 13px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><div class="crayon-line" id="crayon-57b60e2fab98e616841284-1"><span class="crayon-k ">reload</span><span class="crayon-sy">(</span><span class="crayon-k ">sys</span><span class="crayon-sy">)</span></div><div class="crayon-line crayon-striped-line" id="crayon-57b60e2fab98e616841284-2"><span class="crayon-k ">sys</span><span class="crayon-sy">.</span><span class="crayon-e">setdefaultencoding</span><span class="crayon-sy">(</span><span class="crayon-s">'utf-8'</span><span class="crayon-sy">)</span></div></div>
这里有2个作用:
1. 指定文本的编码格式为utf-8,这将影响到你定义的变量字符串(e.g. “test”)的编码
2. 指定编码函数 .encode()默认的decode()的编码为utf-8,因为
str.encode("utf-8") 等价于 str.decode(defaultencoding).encode("utf-8")<span style="font-size:14px;"><span class="crayon-sy"></span></span>
2. "test" 与 u"test" 的差别
python作为脚本语言,对变量类型没有强制约束,因此容易造成类型的混淆
s1 = "字符串" s2 = u"字符串"
感觉上,2上述2种形式都是定义字符串,其实不然,第二种方式定义的是unicode对象。
str1 = "字符串" # 字符串,编码与文件声明的编码一致str2 = u"字符串" # unicode对象print type(str1)print type(str2)输出:<type 'str'><type 'unicode'>
标准的unicode对象有2种定义方式:
s1 = u"字符串"s2 = unicode("字符串", "utf-8")
unicode对象,可以和字符串进行转换:
# -*- coding:utf-8 -*-str = "字符串" # 一个utf-8格式的字节串(与文件声明编码一致)uObj = str.decode("utf-8") # str被解码为unicode对象,赋给uObj str = uObj.encode("utf-8") # unicodeObj被编码为gbk格式的字节串print str输出:<span style="font-size:14px;"><span style="font-size:14px;"></span></span><pre name="code" class="html">字符串
0 0
- Python中文处理:str与unicode
- python中的str与unicode处理方法
- Python 中的 str 与 unicode 编码处理
- Python中的str与unicode处理方法
- Python中的str与unicode处理方法
- Python中的str与unicode处理方法
- Python中的str与unicode处理方法
- Python中的str与unicode处理方法
- Python中的str与unicode处理方法
- Python中的str与unicode处理方法
- Python中的str与unicode处理方法
- Python中的str与unicode处理方法
- Python中的str与unicode处理方法
- Python中的str与unicode处理方法
- Python中的str与unicode处理方法
- Python Unicode与中文处理
- Python Unicode与中文处理
- Python Unicode与中文处理
- 数据结构实验之查找四:二分查找
- C# ListView控件的item项目实现全选与取消
- Bootstrap学习(三)——Bootstrap 插件
- zabbix系列(六)zabbix添加对ubuntu系统的监控
- webStorm2016.1.1破解+汉化
- Python中文处理:str与unicode
- BZOJ1486: [HNOI2009]最小圈 分数规划
- 企业知识管理之“传帮带”
- Service与Thread区别
- PullToRefresh下拉刷新和上拉加载
- 详解spring 每个jar的作用
- iOS开发UI高级 懒加载
- nodejs中的模块
- HDU5865 Stone game