[topic] 文字コードの変換

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

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

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

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

Posted feedbacks - Python

1:Pythonの場合、バイト列を「かってに変換せずに生のまま」扱うこともでき、それを「ユニコード文字列」に変換することもできます。

2:codecs.openでファイルを開けば指定したコーデックで読み書きをします。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
>>> "こんにちは"
'\x82\xb1\x82\xf1\x82\xc9\x82\xbf\x82\xcd'
>>> _.decode("sjis")
u'\u3053\u3093\u306b\u3061\u306f'
>>> _.encode("euc-jp")
'\xa4\xb3\xa4\xf3\xa4\xcb\xa4\xc1\xa4\xcf'

>>> import codecs
>>> codecs.open(r"c:\tmp.txt", encoding="sjis").read()
u'\u3053\u3093\u306b\u3061\u306f'
>>> codecs.open(r"c:\tmp_euc.txt", "w", encoding="euc-jp").write(_)

Index

Feed

Other

Link

Pathtraq

loading...