sha*_*ang 7 text haskell decode bytestring
我需要将ByteStrings从各种编码解码为Text,但ByteStrings可能是不完整的片段.理想情况下,我需要一个具有以下特征的签名功能:
decodeFragment :: Encoding -> ByteString -> (Text, ByteString)
Run Code Online (Sandbox Code Playgroud)
返回成功解码的Text以及任何未形成完整unicode字符的剩余字节(因此,当我得到下一个片段时,我可以重新使用这些字节).
这种功能在某些Haskell库中是否已经存在,还是我需要自己编写?就目前而言,我甚至可以开始使用不支持UTF-8以外编码的东西.
棘手。通常,编码是我对文本编码和解码的首选建议,但我不认为它提供了您所要求的确切内容。它很接近,因为它提供了
decodeChar :: (Encoding enc, ByteSource m) => enc -> m Char
Run Code Online (Sandbox Code Playgroud)
您可以迭代以获得m String
. 捕获抛出的错误decodeChar
将告诉您是否已到达片段的末尾。粗略地看一下 Hackage 上的其他一些编码包表明,它们要么需要相同的方法,要么需要一个补丁来公开与它们内部使用的上述函数类似的函数。