python 字符编码转换详解

来源:互联网 发布:高斯金字塔算法 matlab 编辑:程序博客网 时间:2024/05/21 15:31
unicode所有的中文或者英文都是占用两个字节 ,16位
ASCII 只能存英文 ,8位
utf-8 可变长的字符编码,所有英文按ascll占一个字节,常用中文字符用utf-8编码占用3个字节




#-*- coding:gbk -*-
import sys
# with语句 为了避免打开文件后忘记关闭,可以通过管理上下文,即
#好处 他不用在关闭文件close 他会自动操作关闭
with open("yesterday","r",encoding="utf-8") as f:
   for line in f:
       print(line.strip())


#查看系统默认编码
print(sys.getdefaultencoding())




#----------------------python2转码-----------------------
'''
s="你好"
# uft-8 -->uniconde -->gbk
s_to_unicode=s.decode("utf-8") #UTF-8转换为unicode 告诉Uuniconde 我原来是UTF-8
print(s_to_unicode)
s_to_gbk=s_to_unicode.encode("gbk")#uniconde转换为gbk
print(s_to_gbk)


#gbk --> uniconde -->utf-8
#gbk转为uniconde ,uniconde转为utf-8
gbk_to_utf=s_to_gbk.decode("gbk").encode("utf-8")


 '''


#---------------------python3转码-----------------------
#unicode 可以等于utf-8  所以可一直直接转个gbk
s="你好"
s_gbk=s.encode("gbk")
print(s_gbk)
print(s.encode())


gbk_to_utf8=s_gbk.decode("gbk").encode("utf-8")
print(gbk_to_utf8)
print("utf-8",gbk_to_utf8)