小编use*_*220的帖子

如何在python 3中声明包含非ascii字符而不转义的字节数组

这是我在python2中写的一个例子

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import print_function
import sys, struct

def pack(*s_list):
    return b"".join(struct.pack(">I", len(s)) + s for s in s_list)

if __name__ == "__main__":
    print(sys.version)
    a = pack("?", "?????? ???", "±")
    b = b"\x00\x00\x00\x02?\x00\x00\x00\x13?????? ???\x00\x00\x00\x02±"
    print(a == b)
Run Code Online (Sandbox Code Playgroud)

以及python 3的转换代码,

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import sys, struct

def pack(*s_list):
    return b"".join(struct.pack(">I", len(b)) + b for b in (s.encode() for s in s_list))

if __name__ == "__main__":
    print(sys.version)
    a = pack("?", "?????? …
Run Code Online (Sandbox Code Playgroud)

python unicode

2
推荐指数
2
解决办法
8186
查看次数

标签 统计

python ×1

unicode ×1