python 3字符编码

官方链接:http://legacy.python.org/dev/peps/pep-0263/

在Python2中默认是ascii编码,Python3是utf-8编码

在python 的源代码文件中经常会看到:

  1. # -*- coding: latin-1 -*-
  2.  
  3. 这句话要写在文件的第一行或者第二行才有效果
    这句话是声明Python源文件的编码方式。这个编码信息会在Python 解释器去解释这个文件时用到,使用这种编码方式去解释这个文件
    因为所有文本,图片,声音,视频保存在磁盘中都必须是二进制的数据,对于文本,需要先转化为二进制然后才能保存在磁盘中,所以就出现了编码,
    廖雪峰字符编码博客链接: https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001386819196283586a37629844456ca7e5a7faa9b94ee8000
    关于unicode 编码,unicode编码
  4.  
  5. 为了解决各国文字使用不同的编码造成的问题,出现了unicode,一个字符用两个字节表示
    但是Unicode 在存储和传输的过程中,如果一个文件都是ascii 编码,用unicode 存储或传输,会造成很大的资源浪费。所以出现了utf-8 ,utf-16
    utf-8 是变长编码,对于英文用一个字节表示,汉字用3个字节表示。避免了浪费。
  6.  
  7. 在现代计算机的内存中普遍用 Unicode编码。
    python 中,文本类型统一用str 类型表示,二进制数据用bytes 类型表示。
  8.  
  1. >>> a='中文'
  2. >>> type(a)
  3. <class 'str'>
  4. >>> b=bytes(a,encoding='utf-8')
  5. >>> b
  6. b'\xe4\xb8\xad\xe6\x96\x87'
  7. >>> type(b)
  8. <class 'bytes'>
  9. >>>
  1. 以上的代码都在Python 的内存中,可以看到将a 转换为二进制数据,占了6个字节, 在计算机中为了方便显示,通常用16进制来表示2进制数据
    因为一个16进制位可以用4个二进制位来表示。
    e4实际上一个字节大小,e 1110 4 0100 e4 用二进制就是11100100
  1. >>> c=bytes(a,encoding='gbk')
  2. >>> c
  3. b'\xd6\xd0\xce\xc4'
  4. >>>
  1. 当用gbk 编码去转换为二进制的时候,就成了4个字节,在gbk 中,一个中文字符用2个字节来表示
  2.  
  3. 一般在一个字符前面加u 表示是unicode 字符, 0x是十六进制数,0x 是八进制数。0b 是二进制数
    用内置函数bin() oct() hex() 可以进行各进制的转换
  1. >>> d=0xE4
  2. >>> bin(d)
  3. '0b11100100'
  4. >>> d=0b11100100
  5. >>> hex(d)
  6. '0xe4'
  7. >>>
  1. >>> chr(65)
  2. 'A'>>> ord('A')
  3. 65
  4. >>>
  1.  

python 3字符编码的更多相关文章

  1. Python基础-字符编码与转码

    ***了解计算机的底层原理*** Python全栈开发之Python基础-字符编码与转码 需知: 1.在python2默认编码是ASCII, python3里默认是utf-8 2.unicode 分为 ...

  2. Python的字符编码

    Python的字符编码 1. Python字符编码简介 1. 1  ASCII Python解释器在加载.py文件的代码时,会对内容进行编码,一般默认为ASCII码.ASCII(American St ...

  3. Python常用字符编码(转)

    Python常用字符编码   字符编码的常用种类介绍 第一种:ASCII码 ASCII(American Standard Code for Information Interchange,美国信息交 ...

  4. Python常见字符编码间的转换

    主要内容:     1.Unicode 和 UTF-8的爱恨纠葛     2.字符在硬盘上的存储     3.编码的转换     4.验证编码是否转换正确     5.Python bytes类型 前 ...

  5. Python 的字符编码

    配置: Python 2.7 + Sublime Text 2 + OS X 10.10 本文意在理清各种编码的关系并以此解决 Python 中的编码问题. 1 编码基本概念 只有先了解字符表.编码字 ...

  6. 转:Python常见字符编码及其之间的转换

    参考:Python常见字符编码 + Python常见字符编码间的转换 一.Python常见字符编码 字符编码的常用种类介绍 第一种:ASCII码 ASCII(American Standard Cod ...

  7. Python遇到字符编码出问题的一个相对万能的办法

    在使用Python做爬虫的过程中,经常遇到字符编码出问题的情况. UnicodeEncodeError: 'ascii' codec can't encode character u'\u6211' ...

  8. Python:字符编码详解

    相关文章 Python中文编码问题:为何在控制台下输出中文会乱码及其原理 1. 字符编码简介 1.1. ASCII ASCII(American Standard Code for Informati ...

  9. Python入门笔记(14):Python的字符编码

    一.字符编码中ASCII.Unicode和UTF-8的区别 点击阅读:http://www.cnblogs.com/kingstarspe/p/ASCII.html 再推荐一篇相关博文:http:// ...

随机推荐

  1. 安装python包时报错

    pip install numpy  时  报错: Traceback (most recent call last):  File "d:\学习\python\python-3.6.5\l ...

  2. 第三个Sprint ------第七天

    APP.java代码 package com.app.senior_calculator; import java.io.Serializable; import java.util.ArrayLis ...

  3. 关于RESTful 的概念

    1.REST 是面向资源的,这个概念非常重要,而资源是通过 URI 进行暴露.URI 的设计只要负责把资源通过合理方式暴露出来就可以了.对资源的操作与它无关,操作是通过 HTTP动词来体现,所以RES ...

  4. 『编程题全队』Scrum 冲刺博客

    1.介绍小组新加入的成员,Ta担任的角色 Answer: 我们小组的倪兢飞同学决定跳槽到团队あ,我们小组开了一个简短而又严肃的会议,满足倪兢飞同学的意愿,并感谢他为团队做出的巨大贡献.虽然我们遗失了一 ...

  5. 开发中CollectionUtils处理集合

    1.org.apache.commons.collections.CollectionUtils; 使用这个工具类,帮我们处理一些集合的操作,非常方便 //取并集public void testUni ...

  6. HDU 1236 排名(Microsoft_zzt)

    http://acm.hdu.edu.cn/showproblem.php?pid=1236 Problem Description 今天的上机考试虽然有实时的Ranklist,但上面的排名只是根据完 ...

  7. Quartz应用与集群原理分析

    Quartz在CRM中的应用场景: https://tech.meituan.com/mt-crm-quartz.html https://www.mtyun.com/library/mt-crm-q ...

  8. [转帖] IIS经典模式和集成模式的区别

    在 IIS 7.0 中,应用程序池有两种运行模式:集成模式和经典模式. https://blog.csdn.net/hongwei_23/article/details/44300923 这里面添加一 ...

  9. centos7 搭建svn服务器

    1.安装svn服务器: yum install subversion 2.配置svn服务器: 建立svn版本库根目录及相关目录即svndata及密码权限命令svnpasswd: mkdir -p /a ...

  10. python学习笔记五——数据结构

    4 . python的数据结构 数据结构是用来存储数据的逻辑结构,合理使用数据结构才能编写出优秀的代码.python提供的几种内置数据结构——元组.列表.字典和序列.内置数据结构是Python语言的精 ...