|
Web の世界では、データ交換などの都合で、文字コードとしてUTF-8*が標準になりつつある。 そこで今回は、シフト JIS、EUC-JP、JIS で書かれているテキストファイルを UTF-8 に変換するプログラムを作ることにする。 PHP を使うと、ローカルディスクにあるテキストファイルの文字コードを比較的簡単に、他のコードに変換することができるからだ。 |
サンプル・プログラム |
|
| file タグ、ヒアドキュメントおよび変数 $_FILES については、「PHP で CSV ファイルを読み込む」を参照してほしい。 | |
前準備 |
|
|
変換結果を保管するディレクトリ名をユーザー変数 $PathName に指定する。 変数 $_FILES からは、ダイアログで指定したディレクトリ名を取得することができないため、このような変数を用意した。 変換後の改行コードをユーザー変数 $Nl に指定する。 ここでは UNIX で通常用いられる LF コード(0x0A)にしてある。
0011: /** |
|
文字コード変換 |
|
|
PHP には文字コードを変換するための関数 mb_convert_encoding が用意されている。 この関数を利用し、入/出力ファイル名、入/出力文字コード、および出力改行文字を指定することでテキストファイルの文字コード変換を行うユーザー関数 convertCode を用意した。 関数 file_get_content を使って一気にテキストファイルを読み込む。 続いて、関数 mb_convert_encoding で文字コードを変換する。このとき、変換元を "auto" と指定すると、変換元の文字コードを自動識別してくれる。ただし、自動識別に失敗するケースもあるので注意してほしい。 次に、関数 [str_replace] を使って改行コードを変換する。 最後に、関数 fopen 、 fopen 、 fopen を使って変換したファイルを保管する。 PHP5 であれば、関数 file_put_contents を使って一気に書き込むことができる。
0021: /** |
|
参考書籍 |
|
|
|
参考サイト |
|
|
|
|
|
|
2008年07月05日更新
写真と記事 (C)2008 studio pahoo
(※)本ページはリンクフリーですが、複製・転載時にはご一報ください。 |