То есть, Char - это юникодный символ? Как тогда работать с символами помимо ASCII? Стандартная библиотека их как-то странно корёжит. А для байтовых строк тогда что используется?
Собственно, задача, грубо говоря, такая: прочитать из файла кусок текста в локальной кодировке, сделать некие преобразования (например, привести все буквы к верхнему регистру), записать результат в другой файл. Я пока в растерянности.
> Стандартная библиотека их как-то странно корёжит.
Это обычно происходит либо в стремлениях хаскеля изображать все в потративном формате, либо вследствие не-utf16 консоли. Чтобы читать и писать в utf-8 проще всего использовать вышеуказанную либу.
Так, стоп. Этот iconv умеет перекодировать только из ByteString в ByteString, а юникодные строки он делать не умеет.
Разве что перекодировать из локальной кодировки в UCS-4, а потом руками перевести UCS-4 в последовательность юникодных символов, но это как-то слегка через ж-пу. Ох, ёлки, почему так всё запущено-то в этом хаскеле?