- ベストアンサー
Perl 文字変換
Perlで全角英数字を半角英数字に変換させたいのですが、 Jcodeを使わずにできる方法を教えてほしいです。 例えば zenkaku→zenkaku のようにです。 $value=~ s/$a\xA3([\xB0-\xB9\xC1-\xDA\xE1-\xFA])$b/pack("C", ord($1) - 0x80)/oeg; こういうのを試してみたのですが、上手く行きませんでした・・・
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
これから逆引きしてください $moji =~ s/([^a-zA-Z0-9])/sprintf("%%%02lX",unpack("C",$1))/eg; $moji =~ s/%/\\x/g; print"$moji\n";
その他の回答 (1)
- Wap58
- ベストアンサー率33% (29/87)
回答No.2
逆引きは無視してください、さほど意味は無いです 質問者さんの環境でなぜ動かないのか分かんないよ? ひょっとしてunpackをpackに書き換えてませんか
質問者
お礼
ありがとうございました
質問者
補足
環境のせいなのですかね・・? $moji ="zennkaku"; $moji =~ s/%/\\x/g; $moji =~ s/([^a-zA-Z0-9])/sprintf("%%%02lX",unpack("C",$1))/eg; print"$moji\n"; ご掲示くださったコードをそのまましたのですが・・・
お礼
ありがとうございました
補足
コメントありがとうございます。 逆引きといのは・・・?;; とりあえずは $moji ="zenkaku"; として、ご掲示くださったコードをそのまま試してみたのですが、 結果は「00」でした。 逆引きというのが、わかっていませんorz