dポイントプレゼントキャンペーン実施中!

数値、記号、カナのすべてを半角から全角に変換したく
Encode::JP::H2Zを利用しサンプルプログラムを書いてみました。
セーブは、s-jisで行っているのですが以下のコードを試しましたがまったく変換されません。何処がいけないのでしょうか?
以下を実行すると、
h2z: 012ABCabc!@#ア??ガダパ
h2z:
となってしまいます。

#!/usr/bin/perl
use Encode;
use Encode::JP::H2Z;

my $str_h = ' 012ABCabc!@#アイウガダパ';
my $str_2 = '  012AbCabc!@#アイウガダパ';
my $char_conv;

$char_conv = Encode::encode("euc-jp", $str_h);
Encode::JP::H2Z::h2z(\$char_conv);
$char_conv = Encode::decode("euc-jp", $char_conv);
print " h2z:" . $char_conv . "\n";

$char_conv = Encode::encode("euc-jp", $str_h2);
Encode::JP::H2Z::h2z(\$char_conv);
$char_conv = Encode::decode("euc-jp", $char_conv);
print " h2z:" . $char_conv . "\n";

A 回答 (3件)

Unicode::Japanese のソースをローカルで解凍し、


Unicode/Japanese.pm を
レンタルサーバの適当なディレクトリにアップロードして、

use lib qw(/path/to)

のようにそのディレクトリを指定してやることによって、
Unicode::Japanese をロードするということもできなくはありません。

PurePerl での利用になるので、XS をインストールした場合に比べると、速度は遅くなりますが。

参考URL:http://www.nishishi.com/blog/2005/12/perl_module …
    • good
    • 0
この回答へのお礼

chaimasukaさん、ありがとうございます、ずばり解決しました!
データ件数はあまり無いし、バッチ処理なので速度は遅くても全く問題ありません。

本当にありがとうございました。

お礼日時:2008/05/24 00:50

Encode::JP::H2Z が半角→全角に変換するのは、


カナのみで、数字や記号については変換しません。

「数値、記号、カナのすべてを半角から全角に変換」することが目的ならば、
CPAN モジュールの Unicode::Japanese を使われてはいかがでしょうか。

参考URL:http://search.cpan.org/~hio/Unicode-Japanese/
    • good
    • 0
この回答へのお礼

chaimasukaさん
ご回答ありがとうございます。
本来なら、Unicode::Japaneseを利用したのですがレンタルサーバの為難しいです。(一応、インストール依頼しているのですが)
はやり、カナしか変換出来ないのですね、有用な情報をありがとうございます。

お礼日時:2008/05/22 21:43

intarnal use 用でドキュメントがないようなのでソースを見てみましたが、


渡されるデータは euc-jp であることが前提になっているみたいです。

>セーブは、s-jisで行っているのですが

多分これが原因ではないかと。

この回答への補足

ちなみに、EUC-JPにて保存してみましたがダメでした。
コードが影響?しなよう、$char_conv = Encode::encode("euc-jp", $str_h);としているのですが、意味ないのでしょうか?

補足日時:2008/05/22 21:46
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!