Я сойду с ума, пытаясь просто вывести данные на 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, как в приведенном выше примере, отказываются выводить правильно... Я должен делать что-то неправильно?