- ベストアンサー
エンコード方法についての質問
通常、例えば「モーニング娘。」をエンコードすると、 %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
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
文字コードを合わせれば良いです。 上のエンコードはShift-JISです。 下のエンコードはUTF-8です。 ですのでエンコード対象の文字列を UTF-8に文字コード変換してエンコードすれば お望みの結果が出てきます。 >上記をデコードすると >「繝「繝シ繝九Φ繧ー螽倥・默」になります。 これは多分無理やりShift-JISの表示環境で UTF-8の文字を表示してしまったからでしょう。 文字コード変換はPerlなら jcode.pmを使うもよし 自前で変換するのもよし(ただし要巨大な変換テーブル) お好きにどうぞ。
その他の回答 (2)
- wolv
- ベストアンサー率37% (376/1001)
%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)
UTF-8 にエンコード ってことでいいんでしょうかね? > %E3%83%A2%E3%83%BC%E3%83%8B%E3%83%B3%E3%82%B0%E5%A8%98%E3%80%82 > にエンコードしなくてはいけない状況が出てきました。 > これってどうやるか、分かる方はいらっしゃいますでしょうか。 エンコードしたらそうなるんじゃないでしょうか。。? 多分、やりたいことをもっと詳しく書いたら 的確な説明が返って来ると思いますよ。 ご自分では意味が分かってるかも知れないんですが、 何したいのか周りに伝わってませんよ。。(^-^;;
補足
すいません。 現状は下記の命令でエンコードしています。 $val =~ s/(\W)/sprintf("%%%02X", ord($1))/eg; どういう命令にすればいいのかな、という質問です。 これで分かりますかね? 基礎知識が無いもので質問の仕方も良く分からず、申し訳ないです。
お礼
勉強になりました。 ありがとうございました。