2007年03月13日

第4章 実践編1 メインフレームのデータの扱い(2) 〜文字列の扱い〜

(1)でホストの固定長レコードを1レコード読めましたので、
次はパソコンで読めるよう、文字コードを変換しましょう。
 Python チュートリアル 3.1.2 文字列の「参考:」を見てください。
「文字列や Unicode 文字列では、基本的な変換や検索を行うための数多くのメソッドをサポートしています。」となっています。
 リンク先2.3.6.1 文字列メソッドを見ると、encode/decodeなどが使えそうです。さらに、「利用可能なエンコーディングの一覧は〜」のリンク先4.9.2 標準エンコーディングを見るとEBCDICの文字が目にとびこんできました。
一覧表の中にcp037というのがあります。cpはおそらく「コードページ」の略でしょう。「コードページ037」どこかで見た覚えがあります。そう、ホスト接続エミュレータソフトの設定の「ホストコードページ」です。
 ということで、文字列recを変換する場合、

  rec.decode("cp037")

とすれば良さそうです。EBCDICのテキストだけを読むのであれば、この一行さえ使えば何とかなりそうです。

encode/decodeはちょっと迷います。「EBCDICをShiftJISにencodeすれば?」と考えたりもします。これは何が「基準」かを考えれば簡単です。基準は「デフォルトエンコーディング」です。 つまり、「cp037(EBCDIC)でエンコードされている文字列をデフォルトエンコーディングに戻す」ことになります。
posted by ymd at 19:02| Comment(0) | TrackBack(0) | 第4章 実践編
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/3521970

この記事へのトラックバック