python学习DAY7(编码转码)

Posted god-for-speed

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python学习DAY7(编码转码)相关的知识,希望对你有一定的参考价值。

Unicode默认中英文为2个字节,16位
Unicode相当于编码的转码中介
ASCII不可存中文字符
utf-8(可变长):英文字符按照ASCII码
              中文字符三个字节
#打印系统默认编码
import sys
print(sys.getdefaultencoding())
-------------------------------------------
python2中:
#若UTF-8转为GBK 默认编码为unicode
则需要进行解码操作,先解成UNICODE(可显示中文),再编码为GBK
s="你好"
s_to_unicode=s.decode("utf-8")
s_to_GBK =s_to_unicode.encode("GBK")
----------
也可以这种写法
s=u"你好"
s_to_GBK=s.encode("gbk")
#unicode 和 uft-8之间都可以打印显示
--------------------------------------------
python3中:默认是utf-8,声明为utf-8
s="你好"
s_to_gbk=(s.encode("gbk"))      #utf-8转为gbk,注意,必须要用变量存储新转化,否则原s不变
s2=s.encode()                   #默认编码utf-8
print(s_to_gbk)
print(s2)
s_to_utf8=s_to_gbk.decode("gbk").encode("utf-8")   #gbk转为utf-8:先解码为unicode,再编码为utf-8
print(s_to_utf8)

#总之:转码进行需要先进行decode成unicode再encode成所要的编码格式
 注意!文件编码为utf-8,则需要声明为utf-8格式,其他编码做法类似
 文件编码与程序运行所用的编码不同,程序运行所用的编码是默认的unicode,如上面的s仍然为unicode
 所以开始就只有encode,因为程序已经是unicode了,不需要再解码成unicode
 解码需要写上需要解码的原编码格式
#总之,可以把程序的编译认为是unicode编码

技术图片

以上是关于python学习DAY7(编码转码)的主要内容,如果未能解决你的问题,请参考以下文章

Python学习day7文件操作

python学习:字符编码与转码

python学习笔记(集合的使用文件操作字符编码与转码函数)

python学习之第二天

Python day7

python字符编码与转码