« ストーブの火が付かない。 | Main | またまた海ごはん »

なんとなくperl5.8のutf8対応が分かってきた。

なんとなく必要に迫られてテストプログラムを組んでいるうちに、だんだんわかってきた。

まだ、実際のところまでわかっているか、というと怪しいところではあるのだけど。

1) use encoding 'utf8';と書かないと、utf8の文字は文字として扱われない。

まずこれはこれ。特にソースに書いてある正規表現なんかは、この宣言で初めてutf8の扱いを受けることになる。

2) 外から入力した文字列は、何の文字列か教えてあげないとutf8として扱ってくれない。

問題は、どれが外から入力した文字列で、どれが外から入力してない文字列か、ということだ。

2-a) 少なくとも、DBからの入力は「外から入力した文字列」である。

で、DBIを使っている場合は、$db->{pg_enable_utf8}=1とかしてやるとutf8扱いになるらしい。

3)外に出力する文字列は、変換してやらないとutf8として見えなくなる。

この辺がまだわからないんだよなあ。printなんかは確実にそうなんだが。

まあ、どうもeucやshift_jisなんかを普通に扱う方法ばかり他のサイトには書かれているので、utf8をutf8として扱う方法を調べるのに難儀したけど、とりあえずはこんな感じ。ややこしいなあ。

|

« ストーブの火が付かない。 | Main | またまた海ごはん »

Comments

Post a comment



(Not displayed with comment.)




TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/41298/12422272

Listed below are links to weblogs that reference なんとなくperl5.8のutf8対応が分かってきた。:

« ストーブの火が付かない。 | Main | またまた海ごはん »