zoukankan      html  css  js  c++  java
  • python 3字符编码

    python 3字符编码

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

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

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

    # -*- coding: latin-1 -*-

    这句话要写在文件的第一行或者第二行才有效果
    这句话是声明Python源文件的编码方式。这个编码信息会在Python 解释器去解释这个文件时用到,使用这种编码方式去解释这个文件
    因为所有文本,图片,声音,视频保存在磁盘中都必须是二进制的数据,对于文本,需要先转化为二进制然后才能保存在磁盘中,所以就出现了编码,
    廖雪峰字符编码博客链接: https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001386819196283586a37629844456ca7e5a7faa9b94ee8000
    关于unicode 编码,unicode编码

    为了解决各国文字使用不同的编码造成的问题,出现了unicode,一个字符用两个字节表示
    但是Unicode 在存储和传输的过程中,如果一个文件都是ascii 编码,用unicode 存储或传输,会造成很大的资源浪费。所以出现了utf-8 ,utf-16
    utf-8 是变长编码,对于英文用一个字节表示,汉字用3个字节表示。避免了浪费。

    在现代计算机的内存中普遍用 Unicode编码。
    在python 中,文本类型统一用str 类型表示,二进制数据用bytes 类型表示。


    >>> a='中文'
    >>> type(a)
    <class 'str'>
    >>> b=bytes(a,encoding='utf-8')
    >>> b
    b'xe4xb8xadxe6x96x87'
    >>> type(b)
    <class 'bytes'>
    >>> 
    以上的代码都在Python 的内存中,可以看到将a 转换为二进制数据,占了6个字节,  在计算机中为了方便显示,通常用16进制来表示2进制数据
    因为一个16进制位可以用4个二进制位来表示。
    e4实际上一个字节大小,e 1110 4 0100 e4 用二进制就是11100100
    >>> c=bytes(a,encoding='gbk')
    >>> c
    b'xd6xd0xcexc4'
    >>> 

    当用gbk 编码去转换为二进制的时候,就成了4个字节,在gbk 中,一个中文字符用2个字节来表示


    一般在一个字符前面加u 表示是unicode 字符, 0x是十六进制数,0x 是八进制数。0b 是二进制数
    用内置函数bin() oct() hex() 可以进行各进制的转换
    >>> d=0xE4
    >>> bin(d)
    '0b11100100'
    >>> d=0b11100100
    >>> hex(d)
    '0xe4'
    >>> 
    >>> chr(65)
    'A'>>> ord('A')
    65
    >>> 











  • 相关阅读:
    eclipse+myeclipse 使用技巧备忘
    程序员的自我修养
    枚举工具类 EnumUtils
    日期/时间处理工具 DateTimeUtil
    轻松了解Spring中的控制反转和依赖注入(一)
    了解SpringMVC框架及基本工作流程
    HTTP请求行、请求头、请求体详解
    Tomcat项目部署问题记录
    入手IntelliJ IDEA 常用配置
    解决阿里云OSS跨域问题
  • 原文地址:https://www.cnblogs.com/yuyang26/p/7686731.html
Copyright © 2011-2022 走看看