* 文字コード操作(Encode) [#s553221d]
* 文字コードの操作 - Encode [#s553221d]

** UTF8フラグなし → UTF8フラグ付き [#ee1a06fc]
 my $str = Encode::decode('sjis',$bytes); # $bytesの文字コードはSJISと仮定する


** UTF8フラグ付き → (文字コード変換)→ UTF8フラグなし [#t1f756ba]
 my $bytes = Encode::encode('euc-jp',$str); # $bytesの文字コードはEUC-JPに変換される

** UTF8フラグなし → (文字コード変換)→ UTF8フラグなし [#n728d09a]
 Encode::from_to($bytes,'sjis','euc-jp'); # $bytesの文字コードはSJISからEUC-JPへ破壊的に変換される

** どの文字コードか調べる [#acea58bc]
 my $enc = Encode::Guess::guess_encoding($text,qw/euc-jp sjis/);  # $textはUTFフラグ付きでもなしでもよい
                                                                  # utf-8はデフォルトなので指定は不要
 print $enc->name,"\n";                                           # "euc-jp"などと表示される

** UTF8フラグ付き →(文字コード変換)→ UTF8フラグ付き [#e80a2937]
 $text = Jcode->new($text,'utf-8')->euc; # UTF8からEUC-JPへの変換される
                                         # $textはUTFフラグ付きでもなしでもよい

** 参考(perldoc) [#ee284602]
- [[Encode>http://search.cpan.org/perldoc?Encode]]
- [[Encode::Guess>http://search.cpan.org/perldoc?Encode::Guess]]
- [[Jcode>http://search.cpan.org/perldoc?Jcode]]
- http://perl-users.jp/articles/advent-calendar/2009/casual/10.html

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS