3

unpackshowは、 に変換する 2 つの方法TextですString。ただし、ASCII 以外の文字の場合は動作と定義が異なります。

Prelude Data.Text> putStrLn $ unpack $ pack "你好我的朋友"
你好我的朋友
Prelude Data.Text> putStrLn $ show $ pack "你好我的朋友"
"\20320\22909\25105\30340\26379\21451"

を使用showすると、コードポイントの文字列が返さunpackれ、実際の文字が表示されると思います。インスタンスを受け取り、Showを渡したい関数を定義していTextて、実際の非 ASCII 文字をString.

この動作の設計意図は何ですか? showと のunpack定義が異なるのはなぜですか?

ソースはhttp://hackage.haskell.org/packages/archive/text/0.11.1.5/doc/html/src/Data-Text.htmlにあります。

4

1 に答える 1