• ベストアンサー

エンコード方法についての質問

通常、例えば「モーニング娘。」をエンコードすると、 %83%82%81%5B%83j%83%93%83O%96%BA%81B になります。 ところが、 %E3%83%A2%E3%83%BC%E3%83%8B%E3%83%B3%E3%82%B0%E5%A8%98%E3%80%82 にエンコードしなくてはいけない状況が出てきました。 上記をデコードすると「繝「繝シ繝九Φ繧ー螽倥・默」になります。 私には意味不明です。 これってどうやるか、分かる方はいらっしゃいますでしょうか。 トンチンカンな質問でしたら申し訳ないです。m(_ _)m

質問者が選んだベストアンサー

  • ベストアンサー
  • bricks
  • ベストアンサー率69% (16/23)
回答No.3

文字コードを合わせれば良いです。 上のエンコードはShift-JISです。 下のエンコードはUTF-8です。 ですのでエンコード対象の文字列を UTF-8に文字コード変換してエンコードすれば お望みの結果が出てきます。 >上記をデコードすると >「繝「繝シ繝九Φ繧ー螽倥・默」になります。 これは多分無理やりShift-JISの表示環境で UTF-8の文字を表示してしまったからでしょう。 文字コード変換はPerlなら jcode.pmを使うもよし 自前で変換するのもよし(ただし要巨大な変換テーブル) お好きにどうぞ。

abiru
質問者

お礼

勉強になりました。 ありがとうございました。

その他の回答 (2)

  • wolv
  • ベストアンサー率37% (376/1001)
回答No.2

%E3%83%A2 モ %E3%83%BC ー %E3%83%8B ニ %E3%83%B3 ン %E3%82%B0 グ %E5%A8%98 娘 %E3%80%82 。 ですかね。3バイトずつの区切りだし、unicode でしょうか。

  • duckling
  • ベストアンサー率47% (88/185)
回答No.1

UTF-8 にエンコード ってことでいいんでしょうかね? > %E3%83%A2%E3%83%BC%E3%83%8B%E3%83%B3%E3%82%B0%E5%A8%98%E3%80%82 > にエンコードしなくてはいけない状況が出てきました。 > これってどうやるか、分かる方はいらっしゃいますでしょうか。 エンコードしたらそうなるんじゃないでしょうか。。? 多分、やりたいことをもっと詳しく書いたら 的確な説明が返って来ると思いますよ。 ご自分では意味が分かってるかも知れないんですが、 何したいのか周りに伝わってませんよ。。(^-^;;

abiru
質問者

補足

すいません。 現状は下記の命令でエンコードしています。 $val =~ s/(\W)/sprintf("%%%02X", ord($1))/eg; どういう命令にすればいいのかな、という質問です。 これで分かりますかね? 基礎知識が無いもので質問の仕方も良く分からず、申し訳ないです。

関連するQ&A