gpt4 book ai didi

haskell - 将字符串的 UTF-8 编码存储在 ByteString 中

转载 作者:行者123 更新时间:2023-12-04 06:05:46 25 4
gpt4 key购买 nike

所以我想访问字符串的 UTF-8 编码的各个字节。

我尝试使用 Data.ByteString.Char8.pack ,但这似乎只是将其截断为每个字符的最后一个字节:

ghci> Char8.pack "\945\946\947" 
"\177\178\179"

如果我可以从文件中读取字符串,这不是问题:
ghci> Prelude.writeFile "temp.txt" "\945\946\947" >> Char8.readFile "temp.txt"
"\206\177\206\178\206\179"

但我想要一种纯粹的方式来转换 String -> ByteString没有截断,和 hoogle isn't very helpful .

最佳答案

您可以使用 Data.ByteString.UTF8.fromString :

ghci> import Data.ByteString.UTF8 as BSUTF8
ghci> :t BSUTF8.fromString
BSUTF8.fromString :: String -> ByteString
ghci> BSUTF8.fromString "\945\946\947"
"\206\177\206\178\206\179"

或者,您可以使用 encode{Strict,Lazy}ByteString 来自 encoding 包,它提供了比 UTF-8 更多的编码:
ghci> import Data.Encoding as E
ghci> import Data.Encoding.UTF8
ghci> E.encodeStrictByteString UTF8 "\945\946\947"
"\206\177\206\178\206\179"

关于haskell - 将字符串的 UTF-8 编码存储在 ByteString 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14047190/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com