- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- Perl/日本語処理/文字コード操作の前提知識 へ行く。
- 1 (2009-09-07 (月) 05:03:10)
- 2 (2009-09-07 (月) 05:26:40)
日本語処理の基本
- 日本語処理(マルチバイト対応substr()など)は、UTF8フラグ付きUTF8文字列に対して行う。
- (標準出力やファイルに)出力する文字列はUTF8フラグ付きであってはならない。UTF8フラグを落とす必要がある。
- UTF8フラグを付けるにはEncodeモジュールのdecode()を、UTF8フラグを落とすにはencode()を使う。
- 一般的に、プログラムの最初に引数やファイルから受け取った文字列に対してdecode()してUTF8フラグを付け、その日本語文字列に必要な処理をした後、プログラムの最後にencode()してUTF8フラグを落し、画面やファイルに出力する。
- use utf8(もしくはuse encoding 'euc-jp')を宣言すれば、そのスクリプトに書かれた文字列は(decode()しなくとも)自動的にUTF8フラグ付きとして扱われる。従って、出力する際は必ずencode()しなければならない。
- 注意すべきなのは、「UTF8フラグのないUTF8文字列」と「UTF8フラグ付きUTF8文字列」は別のものということ。