V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
cnaol
V2EX  ›  问与答

学 Python 中 有个问题困扰一天了 关于编码的 使用的 python3

  •  
  •   cnaol · 2017-12-10 20:38:58 +08:00 · 1629 次点击
    这是一个创建于 2543 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我现在想达到一个效果
    说具体点 我想把整数 12 转成字节 以 4 个字节保存
    因为客户端 在收到字节流后 读取前 4 个字节保存为长度
    我尝试了好几种转换 都是 ascii

    使用的 py3
    3 条回复    2017-12-11 12:38:53 +08:00
    ysc3839
        1
    ysc3839  
       2017-12-10 20:49:02 +08:00   ❤️ 1
    https://docs.python.org/3/library/struct.html

    >>> import struct
    >>> struct.pack('!i', 12)
    b'\x00\x00\x00\x0c'

    '!i' 的含义: '!' 代表网络字节序,因为你要跟客户端通信,所以得考虑字节序的问题;'i' 代表 int。在前面的链接里都有提到。
    cnaol
        2
    cnaol  
    OP
       2017-12-11 02:04:49 +08:00
    @ysc3839
    万分感谢
    ysc3839
        3
    ysc3839  
       2017-12-11 12:38:53 +08:00 via Android
    @cnaol 上面的代码转换成了网络字节序,客户端那里也要转换一次。使用 ntohl 这个函数来转换。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5929 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 01:54 · PVG 09:54 · LAX 17:54 · JFK 20:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.