IS2022JPの半角カナ対応

| 0 Comments | 0 TrackBacks | このエントリーをはてなブックマークに追加 このエントリーのはてなブックマーク件数

WIDE系 IRCで使われている、IS2022JPの(いわゆる)半角カナにはいろいろ種類がありますが、これをPerlでコード変換しようとした場合、Encodeモジュールではコード変換に失敗してしまいます。(2008年6月6日0:20追記:Encodeモジュールでは半角カナの認識に失敗するだけで他のコードは自動認識します)(2008年6月7日0:50訂正)

筆者の間違いでした。Encodeモジュールメンテナンス各位の方へお詫びいたします。

この場合、skfを使うと解決できます。(2008年6月7日0:50訂正)

Encodeモジュールでも変換できますが、今回はskfを使った方法を紹介します。

SourceForge.JP: Project Info - skf - simple kanji filter

skfにはPerlエクステンションがあり、エクステンションを使うと解決できます。

Perlエクステンションの導入方法

上記のURLからソースコードをDLして、

>configure
>make perlext

これで、Skf.pmとSkf.soファイルができますので、

>sh ./scripts/find-perl

の結果を元にSkf.pmとSkf.soを移動します。


私の環境では、結果が /usr/local/lib/perl5/5.8.8/mach/CORE でしたので、

/usr/local/lib/perl5/5.8.8 に Skf.pm を

/usr/local/lib/ に Skf.so をおきました。

動作確認用コード

#!/usr/local/bin/perl
use Skf;
my $test = Skf::convert("--ic=CP932 --oc=UTF-8", "\x82\xA0");
print $test . "\n";

"--oc"が出力コードですので、任意のコードに変えて「あ」が出ることを確認してください。

パラメータの詳細は、ヘルプを見ましょう。


注)この記事はhttp://d.hatena.ne.jp/UnderDone/20061031/p1より筆者が転載

No TrackBacks

TrackBack URL: http://perl-mongers.org/MT/mt-tb.cgi/50

Leave a comment

About this Entry

This page contains a single entry by http://www.hatena.ne.jp/hashy1126/ published on June 6, 2008 12:19 AM.

WWW::Mechanize::AutoPagerにWebService::Wedataから得たSITEINFOを渡しtwitterのfriends一覧を作る was the previous entry in this blog.

perl/Encode - 7bit-jis != iso-2022-jp is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.

Categories

Pages

Creative Commons License
This blog is licensed under a Creative Commons License.
Powered by Movable Type 4.21-en