我正在寻找从 Word8 转换为 Text 的最佳方法,问题是使用 Heist 的 runChildrenWithText 函数需要文本输入进行绑定,但 getParam 功能返回 ByteStrings,我可以将其转换为 Word8,但不能从这些格式中的任何一种转换为 Text ,所以我在决定从哪里开始时遇到了麻烦,感谢您提供有关解决此问题的最佳方法的任何帮助。
问问题
477 次
1 回答
5
该Data.Text.Encodings
包有许多将ByteString
s 转换为Text
. 请注意,ByteString
toText
编码可能会失败(例如,您假设ByteString
包含 UTF-8 数据,但实际上没有),因此这是一个比convert :: ByteString -> Text
.
也就是说,decodeUtf8 :: ByteString -> Text
会抛出不纯的异常,因此decodeUtf8' :: ByteString -> Either UnicodeException Text
如果有任何解码失败的机会,可能会更可取。
您还可以使用decodeUtf8With :: OnDecodeError -> ByteString -> Text
和构建更复杂的解码失败处理程序方案Data.Text.Encodings.Error
。
于 2013-07-30T16:37:05.580 回答