1、编码常识

  • 在python 2中默认编码是 ASCII,而在python 3中默认编码是 unicode
  • unicode 分为utf-32 (占4个字节),utf-16(占两个字节),utf-8(占1-4个字节),所以utf-16 是最常用的unicode版本,但是在文件里存的还是utf-8,因为utf8省空间
  • 在python 3,encode编码的同时会把stringl变成bytes类型,decode解码的同时会把bytes类型变成string类型
  • 在unicode编码中 1个中文字符=2个字节,1个英文字符 = 1个字节,切记:ASCII是不能存中文字符的
  • utf-8是可变长字符编码,它是unicode的优化,所有的英文字符依然按ASCII形式存储,所有的中文字符统一是3个字节
  • unicode包含了所有国家的字符编码,不同字符编码之间的转换都需要经过unicode的过程
  • python本身的默认编码是utf-8

在Python2.X中,默认编码是ASCII

#-*- encoding:utf-8 -*-

import sys

print(sys.getdefaultencoding())  #打印当前默认编码

s = '你好!!!'

s_to_unicode = s.decode('utf-8') #需要指定编码方式为utf-8(否则会使用默认编码)

print(s_to_unicode)     #此时可以打印中文

2、Python2.x  utf-8转换成gbk格式

1 #-*- encoding:utf-8 -*-
2 s = '你好!!!'
3 s_to_unicode = s.decode('utf-8') #需要指定编码方式为utf-8(否则会使用默认编码)
4 s_to_gbk = s_to_unicode.encode('gbk')
5 合成一句
6 #s_to_gbk = s.decode('utf-8').encode('gbk')
7 print(s_to_gbk)  

3、Python2.x  gbk转换成utf-8格式

1 #-*- encoding:utf-8 -*-  #属于文件编码
2 s = '你好!!!'          #默认编码也是utf-8
3 s_to_gbk = s.decode('utf-8').encode('gbk')
4 gbk_to_utf-8 = s_to_gbk.decode(‘gbk’).encode(‘utf-8’)
5 print(gbk_to_utf-8)

4、Python3.x  unicode转换成gbk,gbk再转换成utf-8,utf-8转换成unicode

 1 s = '你好'     #python3 默认是unicode
 2
 3 s_gbk = s.encode("gbk") #将unicode转换成gbk
 4
 5 print(s_gbk)
 6 print(s.encode())#默认解码成utf-8
 7
 8 gbk_to_utf8 = s_gbk.decode('gbk').encode('utf-8')
 9 print(gbk_to_utf8)
10
11 utf8_to_unicode=gbk_to_utf8.decode('utf-8')
12 print(utf8_to_unicode)
13
14 输出结果:
15 utf-8
16 b'\xc4\xe3\xba\xc3'            #encode会将结果变成二进制编码
17 b'\xe4\xbd\xa0\xe5\xa5\xbd'18 b'\xe4\xbd\xa0\xe5\xa5\xbd'
你好                          #decode会将结果变成字符

转载于:https://www.cnblogs.com/Study-Blog/p/6580861.html

day03-字符编码与转换相关推荐

  1. 彝文计算机,试论计算机彝文字符编码的转换.pdf

    试论计算机彝文字符编码的转换.pdf 第17卷 第1期 云南民族大学学报(自然科学版) V01.17 No.1 2008年1月 Journal of Yunnan Nationalities Univ ...

  2. EBCDIC 与 GBK 的字符编码及其转换(转)

    概览 有些用户在使用 AIX 时在字符编码方面遇到一些困惑,请看下面的场景: 1,用户用从 AIX 利用 FTP 客户端登录上 IBM i,切换到某个 Library/File,然后 get 其中的某 ...

  3. C++中字符编码的转换(Unicode、UTF-8、ANSI)

    C++的项目,字符编码是一个大坑,不同平台之间的编码往往不一样,如果不同编码格式用一套字符读取格式读取就会出现乱码.因此,一般都是转化成UTF-8这种平台通用,且支持性很好的编码格式. Unicode ...

  4. Linux 命令之 iconv -- 转换文件的字符编码

    文章目录 一.命令介绍 二.命令语法 三.常用选项 四.命令示例 (一)对指定文件进行转码,且输出到指定的文件中 一.命令介绍 iconv 命令是 Linux 系统自带的用于转换文件编码的命令行工具, ...

  5. day03_20170514_字符编码/文件存储/函数(一)

    第一节:字符编码 一.在会字符编码之前必须要了解的东西: 1.文本编辑器存取文件的原理(nodepad++,pycharm,word) 文本编辑器在存储的时候是怎样的一个过程?----编辑文字,第一件 ...

  6. python 字符编码

    一.计算机简单说明 # 计算机的主要组成部分:cpu, 内存, 硬盘 # cpu :中央处理器,所有的操作都需要cpu完成 # 内存:运行数据的存储地址,关机数据即丢失 # 硬盘 :用于数据存储,关机 ...

  7. 编码互换变量c语言,【剑仙教程】TC。字符 和字符编码 互换。

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 TC.字符和字符编码的转换. 关键字:怎样取一个汉字的unicode码. 怎样取一个字母或者数字的ascii码. 怎样随机输出7000汉字.中文标点. 怎 ...

  8. php 转码iconv,PHP iconv()函数转字符编码的问题(转)

    在php函数库有一个函数:iconv(),iconv函数库能够完成各种字符集间的转换,是php编程中不可缺少的基础函数库. 最 近在做一个小偷程序,需要用到iconv函数把抓取来过的utf-8编码的页 ...

  9. 【转】刨根究底字符编码【2.0版】(3):字符编码的由来、演变与ASCII码

    为什么需要字符编码 1. 计算机一开始发明出来时是用来解决数字计算问题的,后来人们发现,计算机还可以做更多的事,例如文本处理. 但计算机其实挺"笨"的,它只"认识&quo ...

  10. 【转】刨根究底字符编码之三——字符编码的由来

    字符编码的由来 一.为什么需要对字符进行编码 1. 计算机一开始发明出来时是用来解决数字计算问题的,后来人们发现,计算机还可以做更多的事,例如文本处理. 但计算机其实挺"笨"的,它 ...

最新文章

  1. 机器学习中的数学基础(4.1):支持向量机Support Vector Machine(SVM)
  2. 【模型解读】浅析RNN到LSTM
  3. 【Matlab】怎么判断两个字符串相等?
  4. 扎心!互联网行业的神回复
  5. SSM实现定时任务的两种方式
  6. mysql connector net 6.9.3_MySQL Connector/Net 6.9.3 发布 MySQL Connector/Net 6.9.3下载
  7. Python3.5(十三)迭代器生成器
  8. NO Scala sdk module
  9. smith圆图重要性_smith圆图的理解
  10. 数字图像处理 离散余弦变换(DCT)和峰值信噪比(PSNR)
  11. 由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题
  12. 养兔子c语言sdut,SDUT 养兔子
  13. Android studio显示百度地图及闪退问题的解决
  14. VMware虚拟机安装macos Big Sur 11.1.0 (20C69)镜像CDR/ISO下载
  15. html仿b站页面代码,B站首页界面设计:附详细教程
  16. 什么是 Python Launcher?
  17. 雨滴特效源码html,js雨滴特效
  18. Jmeter之集合点与关联
  19. Python字典推导式
  20. 基于STM32蓝牙智能手环脉搏心率计步器体温显示设计

热门文章

  1. 如何修改 远程桌面的 默认端口号 3389
  2. Web 开发人员必备的随机 JSON 数据生成工具
  3. 盛大文学难逃“垄断”嫌疑,完美文学虎口夺食
  4. oracle学习总结三(bulk collect用法)
  5. vue:虚拟dom的实现
  6. 怎么让wordpress用sqlite3 搭建轻量级博客系统
  7. Golang的反射reflect深入理解和示例
  8. javaweb项目开发日志的原理,方式
  9. JDK动态代理和Cglib的动态代理
  10. Utilize Sql Tuning Advisor from Script