我正在實現一個協議,該協議規定表示密碼的字符串應串行化爲固定長度的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個原始字節?