LoginSignup
16
12

More than 5 years have passed since last update.

use utf8は書くべきなのか?

Posted at

ソースファイルの文字コードがutf8だからといってuse utf8するのは違うらしい
毎回use utf8して、binmode(STDOUT, ":utf8")、binmode(STDIN, ":utf8");してたけど
そういうことじゃないのね。

use utf-8はほとんどの場合不要。 perlメモ
http://www.rengoku.sakura.ne.jp/program/perl/perl_utf8_001.html

じゃあ何のためにあるのかと言えば、perlの処理側に、これはUNICODE文字として処理するよと教えるだけの物です。
 具体的に書くと、substr(文字分割)、length(文字の長さ取得)と言うような、UNICODEとマルチバイトで動作が変る関数群などに対して、 どちらの処理方法で処理するかを教えるのがutf8フラグとなります。
 たとえばlengthの場合、フラグ無しだとバイト数が返ってきますが、utf8フラグONだと、文字数が返って来ます。
(中略)
なので、基本的には、文字列操作系の関数を使わない限り、utf8フラグは不要です。
 単純にperlのソースコードをutf8で作成し、読み込む外部ファイル関係もすべてutf8で統一していれば、use utf8は記述する必要無く、そのcgiスクリプトはutf-8化したことになります。

use utf8が必要な場合。 perlメモ
http://www.rengoku.sakura.ne.jp/program/perl/perl_utf8_002.html

Perl で utf8 化けしたときにどうしたらいいか - blog.64p.org
http://blog.64p.org/entry/20080408/1207619640

PerlのCGIのutf-8改造で文字化けしたときの処方箋
http://mycc.s33.xrea.com/data/pc/perl_use_utf8.html

utf8 - ソースコード内に、UTF-8(か、UTF-EBCDIC)を有効/無効にするためのプラグマ - perldoc.jp
http://perldoc.jp/docs/perl/5.8.1/utf8.pod

16
12
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
12