エンコードラッパーモジュール
Encode.pmへのwrapperです。以前に「エンコードライブラリ」として配布していたものです。
このライブラリを読み込むことで、UTFフラグをつけたり外したり、文字コードを変換することができます。
また、メール送信のためのエンコード・MIME Base64エンコード、URLエンコードも可能です。
利用条件
- 著作権は放棄しません。
- 有償・無償問わず、ご自身のスクリプトに組み込んだり、requireで呼び出したりして使用可能。
- このモジュールを単体で配布することはできません。
- このモジュールを必要とする他のスクリプトと同梱して配布したい場合は、配布ページと同梱ファイル(readme.txt)などにhttp://cgi-bin.jp/へのリンクもしくはURLを記載することにより可能です。
- このモジュールの改造版(改良版)を配布する場合は、配布ページと同梱ファイル(readme.txt)などにhttp://cgi-bin.jp/へのリンクもしくはURLを記載してください。
- このモジュールを参考に自分でプログラムを組み上げたものを配布する場合は、cgi-bin.jpのURL等表記する必要はありません。ご連絡いただければこちらからリンクさせていただくかもしれません。
- 使用はあくまでも自己責任で。補償・サポートはありません。
- Perlモジュールの依存関係の解決もご自身で。
ダウンロード
pmファイルで配布しています。下のリンクをクリックしてください。
MConv.pm(by cgi-bin.jp)
必要な環境
Perl
バージョン5.8以上
必要モジュール
- Encode
- MIME::Base64
モジュールはCPANなどでインストールしてください。というか、Perl5.8ならばコアモジュールですので、何もしなくても入っているはずです。
設定
ダウンロードしたファイル名をMConv.pmに変更します。
設置方法
アスキーモードでサーバにアップロードしてください。
アップロード先は呼び出し元のスクリプトからパスが通っている場所に。呼び出すスクリプトと同じディレクトリが無難。もしくはuse libでパスを通すか。
パーミッションはCGI実行権限者が読めればいいが、644か604が一番多いパターン。
使用方法
呼び出し元のスクリプトでuse MConv;する。
UTFフラグをつける
書式:&MConv::Flagged(str => String , def => DefaultCode)
String …… 変換する文字列
DefaultCode …… 文字コードの自動判別に失敗した際に強制適用する文字コード。省略時はutf-8。
文字コードを変換する・UTFフラグを外す
書式:&MConv::nonFlag(str => String , to => 'Encode' , opt => Option , def => DefaultCode)
String …… 変換する文字列
Encode …… 変換先のエンコード(省略時:utf-8)
Option …… "url_en"を指定すると、文字コード変換の後URLエンコードします。(省略可)
DefaultCode …… 文字コードの自動判別に失敗した際に強制適用する文字コード。省略時はutf-8。
URLエンコードする
書式:&MConv::urlencode(String)
String …… 変換する文字列
URLデコードする
書式:&MConv::decode(String)
String …… 変換する文字列
メールヘッダ用に文字コード変換&MIME Base64エンコードする
書式:&MConv::MailHeader(str => String , def => DefaultCode , to => Code)
String …… 変換する文字列
DefaultCode …… 文字コードの自動判別に失敗した際に強制適用する文字コード。省略時はutf-8。
Code …… 変換先のコード。utf-8やutf-7など。省略時はiso-2022-jp。
メール本文用にエンコードする
書式:&MConv::MailText(str => String , def => DefaultCode , to => Code)
String …… 変換する文字列
DefaultCode …… 文字コードの自動判別に失敗した際に強制適用する文字コード。省略時はutf-8。
Code …… 変換先のコード。utf-8やutf-7など。省略時はiso-2022-jp。
使用例
#!/usr/bin/perl use strict; use warnings; use utf8; use MConv; my $string = "文字コード"; #この時点で$stringに入っている文字列の文字コードは"UTFフラグ付きのutf8" $string = &MConv::nonFlag(to => 'euc-jp', str => $string, def => 'utf-8'); #この時点で$stringに入っている文字列の文字コードは"EUC-JP"(フラグはもちろんなし) print $string; #標準出力に$stringの内容(EUC-JP)が出力されます $string = &MConv::nonFlag(to => 'utf-8', str => $string, opt => 'url_en'); # $stringを文字コードをUTF-8(フラグなし)に変換、更にURLエンコードを施す my $wurl = "http://ja.wikipedia.org/wiki/" . $string; print $wurl; #標準出力にwikipedia(日本語版)の当該項目のリンクが出力されます。 #http://ja.wikipedia.org/wiki/(UTF8でURLエンコードされた文字列) exit;
バグレポート等
鯖缶Blogの当該エントリーにコメントしてください。