study note8

再次复习下ASCII码,unicode,utf-8是怎么回事:

最初的编码是ASCII码,每个英文占1字节,不能存储中文;为了统一世界各国的编码出现了unicode,但是在unicode中不管中文英文都占2字节,也就是原本1M的文件变成了2M,

造成了空间浪费;于是出现了unicode的扩展版本utf-8,在utf-8中英文仍然按照ASCII码的规则占1字节,汉字占3字节。

GBK和UTF-8如何转换:(中文windows默认编码集是gbk),utf-8和unicode之间不转换是可以互相打印的,但是gbk和unicode之间必须转换才能打印

 

#! /usr/bin/env python
# -*- coding: utf-8 -*- #特别注意,这个只是声明文件编码,所以见下个#
# __author__ = "Deakin"
# Email: 469792427@qq.com
# Date: 2018/1/8
import sys
print(sys.getdefaultencoding())
s="你好" #这里的s的默认编码仍然是unicode,不是utf-8
s_gbk=s.encode("gbk")
print(s)
print(s_gbk)
print(s_gbk.decode('gbk'))

打印结果:

utf-8
你好
b'\xc4\xe3\xba\xc3'   #encode的时候转换成了bytes
你好                         #再次decode回unicode又转成了字符串

posted @ 2018-01-07 16:52  Deakin-DJ  阅读(111)  评论(0编辑  收藏  举报