我正在实现一个协议,该协议规定表示密码的字符串应串行化为固定长度的10字节字段。我正在使用Data.Cereal来执行此任务。这是我最近去吧:使用Data.Cereal或Data.Binary对字符串进行序列化
padText :: Int -> Text -> Text
padText fieldLen = T.justifyLeft fieldLen '\NUL'
putPassword :: Putter Password
putPassword = put . TE.encodeUtf8 . padText 10
穿上字节串前添加一个额外的8字节块到它是什么编码制作的面前:
runPut $ putPassword "Friend"
结果:
"\NUL\NUL\NUL\NUL\NUL\NUL\NUL\nFriend\NUL\NUL\NUL\NUL"
我不想要额外的块。为什么这样表现?
有谁知道如何只序列化10个原始字节?