Perl5.8で、Shift_JISの文書の半角カナを全角カナに変換する方法が知りたいです。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2003/07/09 10:44:54
  • 終了:--

回答(4件)

id:moveyourbody No.1

SOL回答回数37ベストアンサー獲得回数02003/07/09 11:06:04

ポイント15pt

’h2z_sjis(*value)

jcode.plを利用して、

&jcode’h2z_sjis(*value)

でどうでしょうか?

($valueに変換したい文字列が入っていると仮定)

id:ryubg8

回答いただきありがとうございます。

今回は、Perl5.8にてjcode.plやjcode.pmを利用しない方法を考えています。

2003/07/09 11:09:41
id:sasada No.2

sasada回答回数1482ベストアンサー獲得回数1332003/07/09 11:25:12

ポイント15pt

Perl5.8で標準となるJcode.pmの後継モジュールです。

id:ryubg8

回答いただきありがとうございます。

うう、よくわからない…。

2003/07/09 11:28:37
id:moveyourbody No.3

SOL回答回数37ベストアンサー獲得回数02003/07/09 11:40:44

ポイント20pt

なるほど、そういうことですね。

Perl5.8では、内部では一般的にUnicodeで処理します。

ですので、いったんSJISコードをUTF8に変換し、

UTF8での全角かなと半角かなの対応は、素直にバイアスで対応していないので、

テーブルを作って変換します。

いかがでしょう?

これは、濁点、半濁点にも対応しているようです。

id:ryubg8

回答いただきありがとうございます。

参考になりました。

2003/07/09 11:47:51
id:namwonS No.4

namwonS回答回数10ベストアンサー獲得回数02003/07/09 11:41:31

ポイント20pt

 Encodeモジュールの説明です。

 Perl5.8の新機能として、encodingプラグマが新設されました。

 これでEUC以外の日本語コード指定もできるようになりましたが、半角全角変換まではサポートしていないと思います。

 おそらく、文字列変換時の半角文字クラスや全角文字クラスは(たぶん)用意されていません。

 つまり、encodingプラグマでは、従来通りのテクニカルな半角全角変換をする必要が有ると思いますので、素直にJcodeなりEncodeなりを使用されることをお勧めします。

id:ryubg8

回答いただきありがとうございます。

こちらも参考になりました。

2003/07/09 11:48:39
  • id:moveyourbody
    リンクURLはjavadです。すいません。。

    すいません、「3.」の回答で、リンクURLはjavaであるので、
    ご参考であることを申し上げるのを忘れてしまいました。
    基本的なアルゴリズムは流用できると思います。
    それでは頑張ってください。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません