首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    python 字符串(字符序列)和字节序列

    字符串(字符序列)和字节序列 字符 由于历史原因, 将字符定义为unicode字符还不够准确, 但是未来字符的定义一定是unicode字符 字节 就是字符的二进制表现形式 码位 我们计算机显示的实际上是码位...(string) -> 字节序列(bytes) -------------编码(encode) >>> "你好".encode("utf-8") b'\xe4\xbd\xa0\xe5\xa5\xbd'...字节序列(bytes) -> 字符序列(string) -------------解码(decode) >>> b b'\xe4\xbd\xa0\xe5\xa5\xbd' >>> b.decode("utf...") '你好' 编码错误 乱码和混合编码 检查编码 没有办法通过字节序列来得出编码格式, 都是统计学来预估当前的编码 # 安装chardet pip install chardet # 导入charet...>>> import chardet >>> chardet.detect(b) 解决乱码和混合编码 忽略错误编码 >>> b_2.decode("utf-8", errors='ignore') '

    61410

    Python数据结构——字节序列

    本文将详细介绍Python中字节序列数据结构的使用,包括字节串(bytes)、字节数组(bytearray)和内存视图(memoryview),并提供示例代码来说明它们的用途。...字节串(bytes):不可变的二进制序列 字节串(bytes)是不可变的二进制序列,其中的元素是字节(byte)值,范围从0到255。字节串在Python 3中引入,用于处理二进制数据。...# 以下操作会引发 TypeError # my_bytes[0] = 65 字节数组(bytearray):可变的二进制序列 字节数组(bytearray)是可变的二进制序列,与字节串类似,但允许修改其中的元素...数据序列化:将数据转换为字节串以便在存储或传输时使用。 总结 字节序列是一种非常重要的数据结构,用于处理二进制数据、文件I/O、网络通信等。...了解这些字节序列数据结构及其应用场景将有助于你更好地处理各种编程问题,从文件处理到网络通信,都需要字节序列来处理二进制数据。

    41210

    字节注入(2

    昨晚折腾了一晚上,把大致的一些东西整理了下,为团队纳新选了几首音乐素材..然后团队的一个表弟来问我宽字节注入的事情了...然后就就才抽空写了一点作为上一篇mysql注入的补充。...使用addslashes来防御(addslashes函数会把' " %00 \ 这些字符前面加上一个\来转义他们) 设置数据库字符为gbk导致宽字节注入 ? 这样是失败的 ?...用get请求提交~ 这样url编码就会被解码,然后%df和%5c被还原成宽字节,運。...宽字节的问题我就不多说了,这边再提了一下是因为团队的一个表弟问的… 传送门: 面试中碰到的坑之宽字节(二) 要补充的是,錦”这个字,它的utf-8编码是0xe98ca6,它的gbk编码是0xe55c。...关于绕过: 一:字符编码问题导致绕过 · 2.1、设置数据库字符为gbk导致宽字节注入 · 2.2、使用icon,mb_convert_encoding转换字符编码函数导致宽字节注入 二:编码解码导致的绕过

    74340

    Python中的文本和字节序列

    本章重点: 1、了解字符字节等概念,编解码问题; 2、熟悉字符的规范化处理和双模式API。...八位二进制数最小为00000000,最大为11111111;通常1个字节可以存入一个ASCII码,2字节可以存放一个汉字国标码。...一个字通常由一个或多个(一般是字节的整数位)字节构成。例如286微机的字由2字节组成,它的字长为16;486微机的字由4个字节组成,它的字长为32位机。 字长 字长是指cpu的每个字所包含的位数。...例如字母A的码位是U+0041 编码 把码位转换成字节序列,调用s.encode() 解码 把字节序列转换成码位,调用s.decode() 编解码例子: s="São Paulo" a=s.encode...; 否则, 返回未经修改的 filename 字节序列

    2K30

    JVM与字节码——2进制流字节码解析 原

    字节码解析 结构 本位将详细介绍字节码的2进制结构和JVM解析2进制流的规范。...版本号分为2个部分。前2字节表示副版本号,后2字节是主版本号。 ~04~05:0x0000=>副版本号为0。 ~06~07:0x0034=>主版本号为52。...~e2~e6:'2a b7 00 01 b1'5个字节就是该方法的指令集。指令集是用于JVM堆栈计算的代码,每个代码用1个字节表示。...LineNumberTable"属性也有自己的格式,主要分为2部分,首先是开头2字节表示行号列表的长度。然后4个字节一组,前2字节表示字节码行号,后2字节表示Java源码行号。...~2a~2b:最大堆栈,2个。 ~2c~2d:最大本地变量个数,4个。 ~2e~31:指令集占用的字节数:0x00000022=>34。 ~32~53:34个字节的指令集。

    1.1K30

    Thrift 对象序列化、反序列化-字节数组分析

    说明 本篇博客仅分析Thrift对象的序列化、反序列化的字节数组,以及Thrift对象的序列化、反序列化原理。...其生成的字节数组为: [8, 0, 1, 0, 0, 0, 18, 11, 0, 2, 0, 0, 0, 4, 121, 97, 110, 111, 0] TSerializer类的serialize方法如下..., 2 // 字段id为2(name) 0, 0, 0, 4 // 字符串name的长度,占4个字节 121, 97, 110, 111 // "yano"的4个ASCII码(其实是UTF-8编码) 0...与 Google Protocol Buffers 的对比 我曾经分析过Google Protocol Buffers 的序列字节码,Google Protocol Buffers 序列化算法分析。...感觉两者在序列字节数组方面实现差别还是挺大的: Thrift的字节码并不紧凑,比如每个字段的id占4个字节,类型占1个字节;而Google Protocol Buffers的字段id和类型占同一个字节

    3.2K30
    领券