全国咨询/投诉热线:400-618-9090

首页技术文章正文

Python培训之5分钟战胜Python字符编码(一)

更新时间:2017-04-16 来源:黑马程序员Python培训学院 浏览量:

1. 本文不谈复杂的理论,就经验教你字符处理八字真言:确定编码,同类交互。
 
2. 文章针对Python 2.7,主要因为3对的编码已经有了很大的改善并且实际原理一样,更改一下操作命令即可。
 
3. 了解完本文,你可以轻松解决文字处理,特殊平台(Windows?)下的编码,爬虫编码等问题。
 
阅读建议
 
本文分为如下几个部分:
 
  • 原理
  • 具体操作
  • 建议的使用习惯
  • 疑难问题解答
 
如果想要了解我给出的使用习惯,可以直接跳到建议的使用习惯。
 
如果只想要解决相关问题可以直接跳到疑难问题解答。
 
希望本文能够帮到你。
 
1. 原
 
为了理解方便,这里不谈理论只做类比,具体想要进一步了解各种编码的理论的百度一下好了。
 
1. 首先说一下我们为什么会碰到各式各样的编码问题:
 
  • 因为我们没有统一编码
  • 因为我们没有用对命令(传对数据)
 
2. 再说一下编码是什么,Python的编码看似复杂,实际上可以看做只有两类编码:Unicode,二进制
 
  • Unicode 相信都很熟悉:,就是\u0000这样的
  • 二进制编码也很简单,就是\x00\x00这样的,平常看到的utf-8,cp936都是二进制编码
  • 二进制编码是具象的,10001100原样就可以存储,而Unicode是抽象的,不能这样存
 
#coding=utf8
 
# Unicode编码演示
print('Unicode:')
print(repr('Unicode编码'))`
 
# 二进制编码演示
print(u'二进制编码:')
print(repr('Unicode编码'))`
 
# 这里只是看个样子,代码不必去深究
 
3. 再说怎么做,就是只有同种编码之间才可以操作
 
  • 举个简单的类比
 
就把一串数据比为烤鸭,我们作为人和鸭子不同种看待烤鸭的态度完全不一样。
我们看到的是晚上的配菜,鸭子看到的是自己二舅。
如果我用鸭子的眼光逛烤鸭店的时候就会出问题。
因为我在烤鸭店看到了都是自己的二舅。
 
  • 这里说的同种就是我们熟悉的各种编码方式:utf-8,unicode,ucs-bom
  • 这也就是编码问题的核心,非常重要。
 
4. 最后说一下Python的环境
 
  • 本身代码是用Ascii解码的,文件里有Ascii无法解码的内容的话要告知Python怎么解码
  • 内部大量命令都是默认接受Unicode
 
# 告知的命令就是下面这一行,删掉就会报错
#coding=utf8
print(u'测试编码')
 


本文版权归黑马程序员Python培训学院所有,欢迎转载,转载请注明作者出处。谢谢!

作者:黑马程序员Python培训学院

首发:http://www.itheima.com/news/python.html


javaee

python

web

ui

cloud

test

c

netmarket

pm

Linux

movies

robot

http://www.itcast.cn/subject/uizly/index.shtml?seozxuids

14天免费试学

基础班入门课程限时免费

申请试学名额

15天免费试学

基础班入门课程限时免费

申请试学名额

15天免费试学

基础班入门课程限时免费

申请试学名额

15天免费试学

基础班入门课程限时免费

申请试学名额

20天免费试学

基础班入门课程限时免费

申请试学名额

8天免费试学

基础班入门课程限时免费

申请试学名额

20天免费试学

基础班入门课程限时免费

申请试学名额

5天免费试学

基础班入门课程限时免费

申请试学名额

0天免费试学

基础班入门课程限时免费

申请试学名额

12天免费试学

基础班入门课程限时免费

申请试学名额

5天免费试学

基础班入门课程限时免费

申请试学名额

5天免费试学

基础班入门课程限时免费

申请试学名额

10天免费试学

基础班入门课程限时免费

申请试学名额
在线咨询 我要报名