# Auther: Aaron Fan
'''
ASCII:不支持中文,1个英文占1个字节
Unicode(万国码,支持所有国家的文字显示):支持中文,但是每个英文和中文都占2个字节
UTF-8(是一种针对Unicode的可变长度字符编码,又称万国码。):
   英文依然按照ASCII的方式占1个字节,所有的中文字符统一是3个字节
   Unicode里面支持各个国家的编码转换,比如当中国的gbk格式的软件在日本打开出现乱码的时候,
   必须把gbk转成Unicode编码后才可以正常显示。
GBK:全称《汉字内码扩展规范》(GBK国标扩展汉语拼音的第一个字母,
   英文名称:Chinese Internal Code Specification
'''
'''
1、先转成Unicode
2、再转换成gbk
概括就是:先编码,后解码
'''

#示例:
'''
gbk_file是一个gbk编码的文件

需求:
gbk_file转换成一个utf8编码的新文件,新文件名为:gbk_to_utf8_file
'''

#python3一行命令搞定的方法
#gbk文件转换成utf8文件,源文件gbk_file,目标文件utf8file
open('utf8file','w+',encoding='utf-8').write(open('gbk_file','r',encoding='gbk').read())
#utf8文件转换成gbk文件,源文件utf8file,目标文件gbk_file
open('gbk_file','w+',encoding='gbk').write(open('utf8file','r',encoding='utf-8').read())

#python2上的实现方式:
#gbk文件转换成utf8文件,源文件newfile,目标文件utf8file
pen('utf8file','w+').write(open('newfile','r').read().decode('gbk').encode('utf-8'))