Python中的编码问题

python文件的编码 v2.7

首先,
encode('codec') => 把unicode转化成其他codec的str;
decode('codec') => 把其他codec的str转换成unicode

python默认charset:'ascii'.

import sys
print sys.getdefaultencoding() 

如果字符集是'ascii'码,那文件中不能处理中文。在开头引入# coding=utf-8 或者 # - coding:utf-8 -,表明支持utf-8字符集。

打印unicode报错 --> 检查是否当前编码是utf-8,然后encode('utf-8')。比如从网上爬下来的中文数据,首先要decode('GBK')。为了显示出来还要encode('utf-8')

utf-8和utf-16
utf-8是变长编码,0000-007F一个字节,0080-07FF->两个字节,其他->三个字节
utf-16是固定两个字节编码方式

python中str.encode("targetcodec")其实做了隐式的str.decode("defaultcodec").encode("targetcodec"),而在print一个unicode的时候则会隐式做encode('defaultcodec)操作,这也是经常会出错的一个原因。解决办法是修改defaultcodec:

  s=u'中文'
  reload(sys)
  sys.setdefaultencoding('utf-8')
  print s
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 字符集和编码简介 在编程中常常可以见到各种字符集和编码,包括ASCII,MBCS,Unicode等字符集。确切的说...
    兰山小亭阅读 12,892评论 0 13
  • 几个基本概念 bit二进制位, 是计算机内部数据储存的最小单位,11010100是一个8位二进制数。一个二进制位只...
    西电大侠阅读 8,943评论 1 8
  • decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode('gb2312'),表示...
    心_的方向阅读 1,310评论 0 0
  • 可以看我的博客 lmwen.top 或者订阅我的公众号 简介有稍微接触python的人就会知道,python中...
    ayuLiao阅读 8,495评论 1 5
  • decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode('gb2312'),表示...
    Andone1cc阅读 1,121评论 0 0

友情链接更多精彩内容