Ruby,Perl,Pythonのメモ〜文字コード指定のまとめ〜

メモ:
・日本語の取り扱いのメモ のまとめ
・バージョンはruby 1.9.1p129,perl v5.10.0,Python 3.0.1

ruby perl python
参考 bitclust
M17N の設計と実装
Encode入門
perl - use encoding; #は黒歴史
@IT記事
基本的な考え方 外部文字コードを内部文字コードに変換し、内部文字コードが何かを意識して処理する 内部はUTF8で外部のコードを内部コードに変換して処理 内部はUnicode(UTF16orUTF32?)で外部のコードを内部コードに変換して処理
ソースコード文字コード コード冒頭に文字コード指定 基本的にUTF8で書く コード冒頭に文字コード指定
文字列 オブジェクト毎に文字コード定義 バイナリとUTF8フラグ付き文字列 Unicode(UTF16orUTF32?)文字列のみ
文字列長 文字コード指定が正しいなら文字数 utfフラグ付きなら文字数 code unit数(文字数でない)*1
configureで--with-wide-unicodeすれば文字数
ファイルオープン File.open(filename,"r:<ファイルの文字コード>:<プログラム内の文字コード>") open $fh, "<:encoding(<ファイルの文字コード>)", $filename f = codecs.open(filename,"r",<ファイルの文字コード>)
ファイルオープンのメモ ファイルの文字コードと取得する文字列の文字コードを指定する
ファイルの文字コードのみを指定するとその文字コードの文字列を得る
ファイルの文字コードとプログラム内の文字コードを同一に指定するとwarningが出る
ファイルの文字コードを指定して、utf8フラグ付きの文字列を得る ファイルの文字コードを指定してUnicode文字列を得る
引数・引数オプション処理 localeのまま取得?
(でもwarning出る)
内部で変換する locale→Unicode文字列に自動変換?
引数ライブラリ OptionParser Getopt::Long英語
Getopt::Long日本語
optparse英語
optparse日本語