Я схожу с ума, пытаясь просто выводить данные в кодировке UTF-8 на консоль.
Мне удалось сделать это с помощью String
, но теперь я бы хотел сделать то же самое с ByteString
. Есть ли хороший и быстрый способ сделать это?
Это то, что у меня так далеко, и оно не работает:
import Prelude hiding (putStr)
import Data.ByteString.Char8 (putStr, pack)
main :: IO ()
main = putStr $ pack "čušpajž日本語"
Распечатывает uapaj~�,�
, тьфу.
Мне бы хотелось получить ответ для новейшей версии GHC 6.12.1, хотя я также хотел бы услышать ответы и для предыдущих версий.
Спасибо!
Обновление: простое чтение и вывод одной и той же строки текста в кодировке UTF-8, кажется, работает правильно. (Используя Data.ByteString.Char8
, я просто делаю putStr =<< getLine
.) Но упакованные значения из файла .hs, как в приведенном выше примере, отказываются выводить должным образом ... Я должен что-то делать не так?