Perlで半角カナを全角カナに、全角カナを半角カナに変換

Garminで位置情報を取得しようと思ったが、ファイル名が「ポイント_25-07-13.gpx」と半角カナが使われている。Perlで処理するには、半角を全角に変換する必要がある。それで、Windows版Perlの細道・けもの道を参照して、変換を行った。

  1. use Encode;
  2. use Encode::JP::H2Z;
  3. my $str_h=”ポイント”;
  4. Encode::from_to($str_h, “utf-8”, “euc-jp”);
  5. Encode::JP::H2Z::h2z(\$str_h);
  6. Encode::from_to($str_h, “euc-jp”, “utf-8”);
  7. print $str_h, “\n”;
  8. my $str_z=”アメダス”;
  9. Encode::from_to($str_z, “utf-8”, “euc-jp”);
  10. Encode::JP::H2Z::z2h(\$str_z);
  11. Encode::from_to($str_z, “euc-jp”, “utf-8”);
  12. print $str_z, “\n”;

スクリプトの説明
スクリプトは、utf-8で保存します。
2行目。Strawberry Perl (version 5.38.2)では、Encode::JP::H2Zがインストールされていなかったので、インストールしました。
4行目。Encode::JP::H2Z関数では、文字コードはeuc-jpで行われるので、euc-jpに変換する。
5行目。Encode::JP::H2Z関数では、h2zで、半角を全角にするを指定します。なお、変換する文字列を参照渡しにしているので、$str_hの前に\を付けている。⇒ 参照渡し
6行目。出力するためにutf-8に戻している。
10行目。z2hで、全角を半角にするを指定します。

参照サイト
Windows版Perlの細道・けもの道

Translate »