Ruby,Perl,Pythonのメモ〜ソースの文字コード指定〜

メモ:
・日本語の取り扱いのめも (ソースコードについて)
・バージョンはruby 1.9.1p129,perl v5.10.0,Python 3.0.1
・バージョンが古いと動かない

ruby perl python
ソースコード コード冒頭に文字コード指定 基本的にUTF8で書く コード冒頭に文字コード指定
文字列 オブジェクト毎に文字コード定義 バイナリとUTF8フラグ付き文字列 Unicode文字列のみ
参考 bitclust
M17N の設計と実装
Encode入門
perl - use encoding; #は黒歴史
@IT記事

ファイル:utf-8、コンソール:utf-8

Ruby

#!/usr/bin/ruby1.9
# coding: utf-8

str = "Rubyで日本語表示。"
puts str


Perl

#!/usr/bin/perl
use strict;
use warnings;
use utf8;
use feature ":5.10";

binmode(STDOUT, ":utf8");
my $str = "Perlで日本語表示。";
say $str;


Python

#!/usr/bin/python3.0
# coding: utf-8

str = "Ptyhonで日本語表示。"
print(str)

ファイル:euc-jp、コンソール:utf-8

Ruby

#!/usr/bin/ruby1.9
# vim:fileencoding=euc-jp

str = "Rubyで日本語表示。"
puts str.encode(Encoding.default_external)

または、

#!/usr/bin/ruby1.9
# vim:fileencoding=euc-jp

str = "Rubyで日本語表示。"
$stdout.set_encoding( Encoding.default_external, str.encoding )
puts str


Perl

#!/usr/bin/perl
use strict;
use warnings;
use feature ":5.10";

binmode(STDOUT, ":utf8");
my $str = Encode::decode("euc-jp","Perlで日本語表示。");
say $str;


Python

#!/usr/bin/python3.0
# vim:fileencoding=euc-jp

str = "Ptyhonで日本語表示。"
print(str)

ファイル:utf-8、コンソール:euc-jp

Ruby

#!/usr/local/bin/ruby
# vim:fileencoding=utf-8

str = "Rubyで日本語表示。"
puts str.encode(Encoding.default_external)

または、

#!/usr/local/bin/ruby
# vim:fileencoding=utf-8

str = "Rubyで日本語表示。"

$stdout.set_encoding( Encoding.default_external, str.encoding )
puts str


Perl

#!/usr/local/bin/perl
use strict;
use warnings;
use utf8;
use Encode;
use feature ":5.10";

my $str = "Perlで日本語表示。";
say encode("euc-jp",$str);

または

#!/usr/local/bin/perl
use strict;
use warnings;
use utf8;
use feature ":5.10";

binmode(STDOUT, ":encoding(euc-JP)");
my $str = "Perlで日本語表示。";
say $str;

Python

#!/usr/bin/python3.0
# vim:fileencoding=utf-8

str = "Ptyhonで日本語表示。"
print(str)