質問

私はコンソールに単純に出力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ファイル内から値を詰め
役に立ちましたか?

解決

utf8-stringサポートのバイト文字列ます。

import Prelude hiding (putStr)
import Data.ByteString.Char8 (putStr)
import Data.ByteString.UTF8 (fromString)

main :: IO ()
main = putStr $ fromString "čušpajž日本語"

他のヒント

bytestringsはバイトの文字列です。彼らは、出力しているとき、それはData.ByteString.Char8のドキュメントで説明して、彼らは、8ビットに切り捨てられます。あなたが明示的にUTF8に変換する必要があります - 。バイト文字列のサポートが含まれていHackage上utf8-stringパッケージを経由して

<時間> しかし、2011年のように、あなたが速いため、textパッケージを使用する必要があり、Unicodeの出力を満載しました。 GHC切り捨てUnicode文字を出力する

あなたの例では、ずっと簡単になり

{-# LANGUAGE OverloadedStrings #-}

import qualified Data.Text    as T
import qualified Data.Text.IO as T

main = T.putStrLn "čušpajž日本語"

のようなので:

$ runhaskell A.hs
čušpajž日本語
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top