Shift-jis形式のファイルでperlのエンコードプログラムを作っています。


#!/usr/bin/perl
$fuji = "フジテレビ";
$asahi = "テレビ朝日";

$fuji =~ s/([^\w ])/'%' . unpack('H2', $fuji)/eg;
$asahi =~ s/([^\w ])/'%' . unpack('H2', $asahi)/eg;

print $fuji;
print $asahi;

エンコードされるのですが、エンコードされた結果をデコードするとフジテレビは「フジテャビ」、テレビ朝日は「テャビャャ」となってしまいます。正しくデコードするためにはどこを修正すればよろしいでしょうか?解説URLの紹介ではなく、上記プログラムについて添削していただける方のみご回答ください。

回答の条件
  • 1人1回まで
  • 登録:
  • 終了:2007/05/20 11:40:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:GEN111 No.1

回答回数472ベストアンサー獲得回数58

ポイント60pt
$fuji =~ s/([^\w ])/'%' . unpack('H2', $1)/eg ;
$asahi =~ s/([^\w ])/'%' . unpack('H2', $1)/eg ;

これで試してみてください。

コメントはまだありません

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

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

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

回答リクエストを送信したユーザーはいません