Частичное декодирование байтовых строк в текст

Мне нужно декодировать ByteStrings из различных кодировок в текст, но ByteStrings могут быть неполными фрагментами. В идеале мне понадобится функция с подписью чего-то вроде:

decodeFragment :: Encoding -> ByteString -> (Text, ByteString)

, которая возвращает успешно декодированный текст, а также любые оставшиеся байты, которые не сформировали полный символ Юникода (так что я могу повторно использовать эти байты, когда получу следующий фрагмент).

Существует ли такая функция уже в какой-нибудь библиотеке Haskell, или мне нужно откатить свою? На данный момент я мог бы даже начать с чего-то, что не поддерживает кодировки за пределами UTF-8.

7
задан shang 22 July 2011 в 06:17
поделиться