キーワード

プロフィール

深沢千尋

Author:深沢千尋
みなさんこんにちは、深沢千尋です。(公式ページ
文字コード【超】研究 改訂第2版NEW!」「すぐわかるPerl」「すぐわかる オブジェクト指向 Perl」の著者です。
ここでは、多くは技術的でないこと、ごくまれに技術的なことをなげやりに書いていきます。
メールは suguwakaruPerl@gmail.com まで。(アットマークは ASCII に)
Twitterはじめました。@query1000です。よろしく~

最新記事

最新コメント

最新トラックバック

月別アーカイブ

カテゴリ

検索フォーム

RSSリンクの表示

リンク

ブロとも申請フォーム

QRコード

QRコード

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

「まるごとEncode」解題(10)文字コードの本名を調べる

続き。
Shift_JIS のことを Encode モジュールに指定するとき、名前として shiftjis と渡しても、sjis と渡してもよい。
これは Encode モジュールに登録するときいくつも名前を付けられるからである。
この「本名」を知るには、以下のプログラムを使う。

#! perl
# encodeRealName.pl -- 文字コードの本名を調べる

use Encode;
print "$_ is ", find_encoding($_)->name, "\n" for @ARGV;

__END__

実行してみる。
引数に試したい名前を指定して使う。
複数指定可。

F:\Dropbox20091029\My Dropbox\Marugoto>encodeRealName.pl sjis Shift_JIS Shift-JIS eucjp
sjis is shiftjis
Shift_JIS is shiftjis
Shift-JIS is shiftjis
eucjp is euc-jp

Encode モジュールについて登録されている名前としては、Shift_JIS は shiftjis で、EUC-JP は euc-jp であることがわかる。

ちなみにこれも、元の本ではワンライナー実行していた。

perl -MEncode -le 'print "$_ is ", find_encoding($_)->name, for @ARGV' jis eucjp sjis

ではやってみよう。
さっきの伝で DOS 窓で使うときは外側のクォートを ""、内側を '' にする。

perl -MEncode -le "print '$_ is ', find_encoding($_)->name, for @ARGV" jis eucjp sjis

では実行してみる。

F:\Dropbox20091029\My Dropbox\Marugoto>perl -MEncode -le "print '$_ is ', find_encoding($_)->name, for @ARGV" jis eucjp sjis
$_ is 7bit-jis
$_ is euc-jp
$_ is shiftjis

あっダメだ。
'' は "" と違って変数を値で展開してくれないのである。
こうだ。

perl -MEncode -le "print $_, ' is ', find_encoding($_)->name, for @ARGV" jis eucjp sjis

F:\Dropbox20091029\My Dropbox\Marugoto>perl -MEncode -le "print $_, ' is ', find_encoding($_)->name, for @ARGV" jis eucjp sjis
jis is 7bit-jis
eucjp is euc-jp
sjis is shiftjis

意外とあっさりできたな。
スポンサーサイト

<< 「まるごとEncode」解題(11)CPAN による文字コードのインストール | ホーム | 「まるごとEncode」解題(9)Encode がサポートしている文字コードの一覧表示 >>


コメント

コメントの投稿


管理者にだけ表示を許可する

 ホーム 


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。