[topic] 文字コードの変換

1.shift-jisで書かれた文字列をeuc-jpの文字列に変換して返す関数を作ってください。

2.shift-jisで書かれたファイルをeuc-jpに変換してファイル出力するしてください。ただし1で作成した関数を利用せずに。

何気にどう書く?orgに文字コード系の話が出てなかったような気がしたので投稿してみる。

2は言語仕様レベルでさくっといける場合(perlのencodingとか)でお願いします。
読み込みや書き込みのレベルで、文字コードを考えないでスパッといけるのが望ましい。

Posted feedbacks - Haskell

Haskellの文字や文字列にはエンコーディングの概念はありませんので,解釈するとすれば,SHIFT-JISバイト列からEUC-JPバイト列への変換ということになるかなぁ.

バイト列を扱うには,Data.ByteString.Lazy モジュールを使います.またバイト列でのエンコーディング変換には,iconv というパッケージにある.Codec.Text.Iconv モジュールを使います.

1
2
3
4
5
6
7
8
9
import Data.ByteString.Lazy as B
import Codec.Text.IConv

sjis2eucjp :: ByteString -> ByteString
sjis2eucjp = convert "SHIFT-JIS" "EUC-JP"  -- エンコード変換関数

main :: IO ()
main = B.interact sjis2eucjp -- 標準入力からのバイト列をエンコード変換して
                             -- 標準出力へ書き出す

Index

Feed

Other

Link

Pathtraq

loading...