本文主要内容 字符 字节 结构体和内存视图 字符和字节之间的转换——编解码器 BOM鬼符  标准化Unicode字符串 Unicode文本排序 python高级——目录 文中代码均放在github上:https://github.com/ampeeg/cnblogs/tree/master/python高级 字符 ''' 字符编码问题是经常困扰python编程人员的问题,我在编写爬虫的过程中也经常遇到这个头疼的事. 从python3开始,明确区分了人类语言(文本字符串)和机器语言(二进制字节),…
字符问题 把码位转化成字节序列的过程是编码,把字节序列转化成码位的过程是解码 把unicode字符串当成人类可读的文本,码位当成机器可读的, 将字节序列编程人类可读是解码,把字符串编码成字节序列是编码 字节概要 python内置了两种基本的二进制序列类型,python3引入的不可变的bytes类型和python2.6添加的可变bytearray类型 基本的编解码器 别依赖默认值 python2的默认编码是ascii而python3是utf-8 这章内容主要讨论unicode编码,其实觉得没什么很…
字符串是一个有序的字符集合,即字符序列.Pythpn内置数据类型str,用于字符串处理,使用单引号或双引号括起来的字符,就是字符常量,Python解释器会自动创建str型对象实例. 字符串的定义: 1.单引号:包含在单引号中的字符串,其中可以包含双引号 2.双引号:包含在双引号中的字符串,其中可以包含单引号 3.三单引号:包含在三单引号中的字符串,可以跨行 4.三双引号:包含在三双引号中的字符串,可以跨行 字符串的基本操作,包括索引访问.切片操作.成员关系操作.比较运算操作等. 一.字符串类型判…
假如拿到了一个字节切片test1 = {'a', 'b', 'c', 'd', 11} package main import ( "fmt" "reflect" ) func main(){ test1 := []byte {'a', 'b', 'c', 'd', 11} fmt.Println(test1) test2 := string(test1) fmt.Println(test2) fmt.Println(reflect.TypeOf(test1[0])…
文本和字节序列 人使用文本,计算机使用字节序列 1. 大纲: 字符.码位和字节表述 bytes.bytearray和memoryview等二进制序列的独特特性 全部Unicode和陈旧字符集的编解码器 避免和处理编码错误 处理文本文件的最佳实践 默认编码的陷阱和标准I/O的问题 规范化Unicode文本,进行安全的比较 规范化.大小写折叠和暴力移除音调符号的实用函数 使用locale模块和PyUCA库正确地排序Unicode文本 Unicode数据库中的字符元数据 能处理字符串和字节序列的双模式…
第二部分 数据结构 第2章 序列构成的数组 内置序列类型 序列类型 序列 特点 容器序列 list.tuple.collections.deque - 能存放不同类型的数据:- 存放的是任意类型的对象的引用 扁平序列 str.bytes.bytearray.memoryview.array.array - 只能容纳一种类型:- 存放的是数据值:- 是一段连续的内存空间:- 只能存放字符.字节.数值等基础类型 可变序列与不可变序列 可变序列:list.bytearray.array.array.c…
一.字符串的表示和存储 字符串是字符的序列,每个字符都有有一个数字作为标识,同时会有一个将标识转换为存储字节的编码方案: s = 'hello world python' for c in s: print(c, end=' ') h e l l o w o r l d p y t h o n ACSII为协议内的每个字符分别对应一个数字,然后以这个数字的二进制形式存储到计算机; s = 'hello world python' for c in s: num = ord(c) print(nu…
工具类 Base64.java import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; @SuppressWarnings("restriction&qu…
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px Helvetica } Python 3 明确区分了人类可读的文本字符串和原始的字节序列.隐式地把字节序列转换成 Unicode 文本已成过去. 深入理解 Unicode 对你可能十分重要,也可能无关紧要,这取决于Python 编程的场景.说到底,本章涵盖的问题对只处理 ASCII 文本的程序员没有影响.但是即便如此,也不能避而不谈字符串和字节序列的区别.此外,你会发现专门的二进制序列类型所…
1.一个字符串是一个不可改变的字节序列2.文本字符串通常被解释为采用UTF8编码的Unicode码点(rune)序列3.内置的len函数可以返回一个字符串中的字节数目4.第i个字节并不一定是字符串的第i个字符,因为对于非ASCII字符的UTF8编码会要两个或多个字节5.字符串操作基于原始字符串字节6.字符串面值方式编写,只要将一系列字节序列包含在双引号内即可,解释字符串,其中的相关的转义字符将被替换;反引号括起来,支持换行,非解释字符串7.每个符号都分配一个唯一的Unicode码点,Unicod…