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