Haskell Word8到文本格式

时间:2013-07-30 15:56:06

标签: haskell text types

我正在寻找从Word8转换为Text的最佳方法,问题是使用Heist的runChildrenWithText函数需要文本输入进行绑定,但getParam功能返回ByteStrings,我可以转换为Word8但不能转换为Text这些格式,所以我无法决定从哪里开始,有关解决此问题的最佳方法的任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:5)

Data.Text.Encodings包有许多将ByteString转换为Text的方法。请注意,ByteString Text编码可能失败(例如,您假设ByteString包含UTF-8数据但实际上并非如此)所以这是一个比convert :: ByteString -> Text更复杂的过程。

也就是说,decodeUtf8 :: ByteString -> Text会抛出不纯的异常,因此如果有任何解码失败的可能性,decodeUtf8' :: ByteString -> Either UnicodeException Text可能会更好。

您还可以使用decodeUtf8With :: OnDecodeError -> ByteString -> TextData.Text.Encodings.Error构建更复杂的解码失败处理程序方案。