一:字符编码

  1、字符编码

  • 什么是字符编码:将人能识别的字符转换为计算机能识别的01二进制的过程就是字符编码,转换的规则就是字符编码表

  • 常用的编码表:ASCII、GBK、Unicode、UTF-8

    了解:编码表的发展史

    1. ascii(ASCII):字母、数字、英文符号与计算机01标识符的对应关系
     思考:如何将128个字符用01完全标签
     二进制:11111111 => 255 => 1bytes(1字节) => 8个二进制位

    2.中国:研究汉字与计算机01标识符的对应关系:gb2312 => GBK(***) => GB18030
     日本:Shift_JIS
     韩国:Euc-kr

    3. 制造一个可以完成万国字符与计算机01标识符的对应关系的编码表
     编码表:unicode表
     py2:ascii,没有按万国编码,原因py2要诞生先有万国编码
     py3: utf-8, 采用万国编码来解释文本内容

    

    # 思考:unicode与utf-8什么关系
    unicode:用2个字节来存储汉字,用2个字节来存储英文字母,占有空间较多,读取效率极高
    utf-8:用3-6个字节来存储汉字,用1个字节来存储英文字母,占有空间较少,读取效率低
    总结:内存都是按unicode存储数据,硬盘和cpu采用utf-8来存取数据
    #“abc你好”

    unicode与utf-8采用的是一张unicode编码表,utf-8是unicode编码表体现方式,变长存储数据。变长优点:(大量数据都是以英文存在,所以utf-8空间更小)传输速度更快

  • 编码操作:编码encode()、解码decode()

    s = '123呵呵'

    n_b = bytes(s, encoding='utf-8')
    print(n_b)

    b = b'123\xe5\x91\xb5\xe5\x91\xb5'
    n_s = str(b, encoding='GBK')
    print(n_s)

    在清楚原格式是字符串还是二进制时:

    # 将u字符串编码成b字符串

    print(u'你好'.encode('utf-8'))
    # 将b字符串解码成u字符串
    print(b'\xe4\xbd\xa0\xe5\xa5\xbd'.decode('utf-8'))

   2、字节与字符

  • 三种字符串:

    u''  :文本字符串,

    r''  :原义字符串,不对字符串内存做任何操作(eg:\n的转化):s3 = r'abc你好\n不好'

    b''  :二进制字符串,是用来数据传输的,是字符的二进制体现(如视频资源可以转化为二进制字符串,不翻转为视频资源,则就是普通字符串),它以字节为最小存储单位存放数据。注意:不是所有的数据编码为二进制字符串都是采用UTF-8编码表的,只有文本内容是,像视频、音频、图片等都有特定的编码方式(他们在编码之后,如果没有解码成本来的格式,就只是普通的二进制字符串)

  • # 字符与ASCII之间转化
    res = ord('A')
    print(res)
    res = chr(65)
    print(res)
    # ascii:DBCS双字节存储可以存放中文等一些文字与字符,可以完成字符与整数(ascii表中整数)的转化
    print(ord('⑩'), chr(9323))

day 07 字符编码的更多相关文章

  1. Day 07 字符编码,文件操作

    今日内容 1.字符编码:人识别的语言与机器识别的语言转换的媒介 2.字符与字节:字符占多少字节,字符串转换 3.文件操作:操作硬盘的一块区域 字符编码 重点:什么是字符编码 人类能识别的字符等高级标识 ...

  2. python3随记——字符编码

    1.1什么是字节 字节(Byte)是计算机信息技术用于计量存储容量的一种计量单位,也表示一些计算机编程语言中的数据类型和语言字符. 比特(bit)在计算机中最小的单位,在二进制位的电脑的系统中,每一b ...

  3. 理解记忆三种常见字符编码:ASCII, Unicode,UTF-8

    理解什么是字符编码? 计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是25 ...

  4. Gnu Linux下文件的字符编码及转换工具

    /*********************************************************************  * Author  : Samson  * Date   ...

  5. javaweb请求编码 url编码 响应编码 乱码问题 post编码 get请求编码 中文乱码问题 GET POST参数乱码问题 url乱码问题 get post请求乱码 字符编码

     乱码是一个经常出现的问题 请求中,参数传递的过程中也是经常出现乱码的问题 本文主要整理了请求乱码中的问题以及解决思路   先要理解一个概念前提: 编码就是把图形变成数值码所以说: 图形的字符  -- ...

  6. [No0000137]字符编码详解

    摘要 本文主要介绍了字符编码的基础知识,以及常见的字符编码类型,比如ASCII,Unicode,UTF-8,ISO 8859等,以及各种编码之间的关系,同时专门解释了中文字符相关的编码标准,包括GB2 ...

  7. 字符编码问题mysql

    2019-02-27 07:32:17.108 ERROR 21745 --- [nio-8086-exec-2] c.h.h.rest.configurer.WebMvcConfigurer : 接 ...

  8. MFC中的乱起八糟----字符编码:LPTSTR,LPCTSTR, TCHAR等

    注意,编写有 Unicode 意识的代码总是一件好事,比如: CString graycat = CString(_T("Gray")) + _T("Cat") ...

  9. 字符编码笔记:ASCII,Unicode 和 UTF-8(理解)

    1.ASCII 码 美国制定的字符编码规则,对英语字符与二进制位之间的关系做了统一规定. 占一个字节,8 位,最多可表示 2^8 = 256 种状态(字符) 实际共有 128 个字符,只占用一个字节的 ...

随机推荐

  1. 一年过去了,25万月薪的AI工程师还存在吗?

    导读:2017 年的时候,AI 前线进行了一场有关人工智能领域薪资差异的专题策划,这篇名为<25 万年薪的你与 25 万月薪的他,猎头来谈你们之间的差别>的文章引起了读者们的热烈讨论.一年 ...

  2. 教你分分钟搞定Docker私有仓库Registry

    一.什么是Docker私有仓库Registry 官方的Docker hub是一个用于管理公共镜像的好地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去.但是,有时候我们的服务器无法 ...

  3. 图说Oracle基础知识(一)

    本文主要对Oralce数据库操作的基础知识进行一下梳理,以便进行归纳总结.适用于未使用过Oracle数据库的读者,或需要学习Oracle数据库方面的基础知识.如有不足之处,还请指正. 关于SQL介绍的 ...

  4. java读取excel文件的代码

    如下内容段是关于java读取excel文件的内容,应该能对各朋友有所用途. package com.zsmj.utilit; import java.io.FileInputStream;import ...

  5. Android 9.0新特性

    1.全面屏支持,Android P加入了对刘海屏的支持,谷歌称之为凹口屏幕(display with a cutout).借助最新的提供的DisplayCutout类,开发者可以找到非功能区域的位置和 ...

  6. Gson解析空字符串异常的处理

    面对一些不规范的json,我们的gson解析经常会抛出各种异常导致app崩溃,这里可以采取一些措施来避免. 我们期望在后台返回的json异常时,也能解析成功,空值对应的转换为默认值,如:newsId= ...

  7. (网页)angularJs中怎么模拟jQuery中的this?(转)

    转载自mini_fan博客园: 今天想在Angular项目中使用jQuery的this功能,发现undefined.代码如下: HTML部分: <p ng-click="testCli ...

  8. Windows Zip/CentOS/Radhat系统安装Mysql5.7.x方法

    CentOS/Redhat 安装: wget http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm rpm -Uvh ...

  9. 卸载(uninstalled)Mac os Jenkins pkg 安装包

    有些小伙伴不熟悉Jenkins, 在mac上安装,会选择pkg 安装包, 安装后又想卸载,苦于卸载不干净,今天给到一个命令即可搞定. 对应qq群号:616961231打开终端输入下面命令'/Libra ...

  10. Spark性能优化【Stack Overflow】

    一.异常情况 Stack Overflow 二.异常分析 之所以会产生Stack Overflow,原因是在Stack方法栈中方法的调用链条太长的原因导致的,一般情况有两种: 1.过于深度的递归[常见 ...