gpt4 book ai didi

string - [Char] 和 [Word8] 之间转换的最佳方式?

转载 作者:行者123 更新时间:2023-12-04 02:13:35 26 4
gpt4 key购买 nike

我是 Haskell 的新手,我正在尝试在我的应用程序 ( Data.Digest.Pure.SHA ) 中使用纯 SHA1 实现和 JSON 库 ( AttoJSON )。

AttoJSON 使用 Data.ByteString.Char8字节串,SHA 使用 Data.ByteString.Lazy bytestrings,我的应用程序中的一些字符串文字是 [Char] .

Haskell Prime's wiki page on Char types似乎表明这仍然是在 Haskell 语言/前奏中解决的问题。

this blogpost on unicode support列出了一些图书馆,但它已有几年历史了。

当前在这些类型之间进行转换的最佳方式是什么,有哪些权衡?

谢谢!

最佳答案

对于 Char8 和 Word8 之间的转换,您应该能够使用 toEnum/fromEnum 转换,因为它们代表相同的数据。

对于 Char 和 Strings,您可能可以使用 Data.ByteString.Char8.pack/unpack 或 map、toEnum 和 fromEnum 的某种组合,但如果您使用的是 ASCII 以外的任何内容,则会抛出数据。

对于不仅仅包含 ASCII 的字符串,一个流行的选择是 UTF8 编码。我喜欢这个 utf8-string 包:

http://hackage.haskell.org/packages/archive/utf8-string/0.3.6/doc/html/Codec-Binary-UTF8-String.html

关于string - [Char] 和 [Word8] 之间转换的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4702325/

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