• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Perl utf8上でshiftjisをデコード)

Perl utf8上でshiftjisをデコード

sample_の回答

  • sample_
  • ベストアンサー率76% (20/26)
回答No.2

私もtaco0603さんの意見と一緒で、perlbrew等で別のPerlをインストールできるのであればインストールして できないのであれば、別のレンタルサーバに移った方がよいのではないかと思います。 そもそもPerl5.6.1って2001年4月リリースのものですから11年前のツールを使っていることになりますし… それでも、どうしてもそのレンタルサーバしか選択しがなく、 それでもこのバージョンじゃないといけない縛りがあるのでしたら… 参考になるかもしれないページが見つかったのでパスをはっておきますね。 http://www.hidekik.com/cookbook/p2h.cgi?id=utf8p56

cinquecent
質問者

お礼

早速アドバイス有難うございます。 環境自体は事情で変更する事ができません・・・。 なんとかjcodeと同じものをと探しているとjacodeがあったから使ってみたのですが、上手くいきません・・・。 私の使い方が悪いと思いたいのですが。 リンクは参考になりました。 これでもう少し勉強してみます。

関連するQ&A

  • UTF-8から1文字ずつ変換するには?

    アクセスログのリンク元に含まれる検索キーワードがUTF-8の場合に、SJISに変換できないことがあります。 アクセスログはURLエンコードされたまま記録して、表示するときにデコードしてからJcode.pmでSJISに変換しています。時々変な文字になることがあるので、ログファイルのURLエンコードされた文字を取り出して順番を入れ替えてデコード、変換するとうまくいきます。 たとえば、 %E3%81%8D%E3%81%AE%E3%81%93%E7%8B%A9 は「きのこ狩」ですがうまく変換できません。これを %E3%81%AE%E3%81%8D%E7%8B%A9%E3%81%93と並べ替えると「のき狩こ」と変換されます。(1234を2143に並べ替え)へんてこだけど意味は分かるようになります。 文字の組合せによっておかしなことになるようなので、1文字ずつ(3バイト?)変換すれば確実だと思うのですが、やり方がわかりません。 ということで、そもそもこういう方法しかないのか、もしそうならどうやればいいのか教えてください。 URLエンコードされた部分だけ取り出せれば、%でsplitして再度%を付けてから9文字(3バイト分?)ずつ変換すればいいのかなと思うのですが…。

  • perl cgi のエンコード SHIFT->UTF-8

    こんにちは初心者です。 現在、既存のperl cgiをカスタマイズしております。 エンコードをshift_jisからUTF8に変更したいのですが、表示はCGI自体をUTF-8に変更し普通に見ることができるのですが、書き込みをしようとすると文字化けがおこります。 jcode.plをjcode.pmに変換すればよいらしいまでは分かったのですが、どこをどう変換すればいいのかjcode.pmのサイトを見ても理解できません。簡単な説明サイト紹介やアドバイス等をいただけませんでしょうか?

    • 締切済み
    • CGI
  • デコードに困っています。

    エンコードされた文字をrawurldecodeでデコードしたいのですが、Shift_JISやEUC、UTF-8によってデコードされる形が異なります。 METAでShift_JISを指定してればShift_JISでエンコードされた値もデコードすればしっかりと表示されます。しかしUTF-8など異なるタイプではMETAがShift_JISなのでしっかりと表示されません。どうすればすべてのタイプに対応させることが可能なのでしょうか?

    • 締切済み
    • PHP
  • UTF8 URLエンコード

    こんにちわ。 PerlのCGIです。 今までEUCとsjisの変換連打で開発を乗り切って来たのですが、 さすがに古すぎて周りの人が迷惑らしいので、初めてUTF8を使うことになりました。 一応全部UTF8だけで作ろうと思います。 大まかな質問は三つです。 1:   UTF8は可変ビット (バイト単位ではない) の、   ほぼ全ての国際言語対応文字コードと言う認識で合ってますか? 2:   そうなってくると、データの送受信などのURLエンコードは不要ですか?必要ですか? 3:   もしURLエンコードが必要なら、一般に通用する変換方法を教えてください。   ついでなんでデコードの記述もお願いします。 すみませんがよろしくお願いします。

    • 締切済み
    • CGI
  • URLデコードをしてくれるリネームソフトを探しています

    URLデコードをしてくれるリネームソフトを探しています URLエンコードされた名前のファイル名があるのですが、これを日本語のファイルに直したいです ファイル数が結構あり、手で直すのはちょっと無理があるのでURLデコードをしてくれるリネームソフトを探しています 文字コードはUTF-8です よろしくお願いします

  • shift-jisからutf8に変換

    解決に至らなかったので再度お尋ねします。 CGIのコードを見てくださいますか。 http://hotpegasus.bov.jp/mail.txt (必要な部分だけ表示しておりますので、そのままアップしても機能はしません) 改修した箇所は以下のです。 <meta http-equiv="Content-Type" content="text/html;charset=shift_jis"> &jcode'h2z_sjis(*contenido) &jcode'convert(*subject,'sjis'); &jcode'convert(*infor,'sjis'); &jcode'convert(*contenido,'jis'); &jcode'convert(*res_msg,'jis'); print "Content-type: text/html;charset=shift_jis\n\n"; ↓ sjis関連をutf8に書き換え、jcodeの頭文字をJに書き換え <meta http-equiv="Content-Type" content="text/html;charset=utf8"> &Jcode'h2z_utf8(*contenido) &Jcode'convert(*subject,'utf8'); &Jcode'convert(*infor,'utf8'); &Jcode'convert(*contenido,'utf8'); &Jcode'convert(*res_msg,'utf8'); print "Content-type: text/html;charset=shift_utf8\n\n"; require 'jcode.pl'をuse Jcode;に書き換え ※jcode::" となっている箇所はありません 結果 メールフォームはエラーや文字化けは出なくて成功しましたが、メール受信の際、ThunderbirdPortableメーラーでは全て文字化け(文字エンコーディングは「日本語ISO-2022jp」となっています)、ウェブメールのgmailでは内容は文字化けになっていませんが、タイトルが文字化けになっています。 どこが悪かったのでしょうか? 宜しくお願いします。

    • 締切済み
    • CGI
  • Perl+UTF8で文字化け

    以下の環境にてメール送信プログラムを作成していますが、 ありがちな文字化け、且、ボディーが表示されない不具合が発生しています。 サーバ:linux apache レンタルサーバ ※Encode.pm、Jcode.pm無し。モジュールインストール不可。 Perl version: 5.006001 ソースエンコード:utf-8 自分の解釈としてはutf8で記述しているので、 charset=utf-8にしておけば、 MIMEエンコードさえしてやれば 表示できると考えているのですが、 やはり甘い考えなのでしょうか? また、同サイト質問NO2868794も参考にさせていただきましたが、上手くいきません。 以下ソース(エンコード:utf-8) use utf8; use MIME::Base64; use POSIX; ※アドレス表記はこのサイトの投稿チェックに引っかかるので省略します。 my $to = 'XXXX@XXXX'.XXX; my $from_nm = "送信者名"; my $from_adr = "XXXXX@XXX.XXX"; my $subject = "メール表題"; my $body = "本文"; # 送信者名を MIME エンコード encode_base64($from_nm,""); # subjectを MIME エンコード encode_base64($subject,""); $subject = "=?utf-8?B?" . $subject . "?="; # 本文を MIME エンコード encode_base64($body); my $MailPass = "XXXX/XXXX/XXX"; #SendMail Pass open(MAIL,"| $MailPass -t"); #======================================================== print MAIL <<"EOF_MAIL"; From: $from_nm<$from_adr> To: $to Subject: $subject Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 MIME-Version: 1.0 $body EOF_MAIL #======================================================== close MAIL; その他、色々ググっては見たのですが、自分ではみつけられず、 どうかアドバイスありましたらよろしくお願いいたします。

  • 文字コードsjisをUTF8に書き換えたい

    CGIの勉強中の者です。 文字コードはSJISで保存しているCGIをUTF8コードに換えるには何が必要でしょうか? HTMLならmeta内をSJISからUTF8に変更し、TeraPadなどのテキストエディタでUTF8に保存すればオッケーなんですが。 CGIの場合はHTMLと違って、換えるには複雑なのでしょうか? CGIプログラムの中では以下の「sjis」を「UTF8」に書き換えし、UTF8で保存しましたけど、文字化けが出てます。 <meta http-equiv="Content-Type" content="text/html;charset=shift_jis"> &jcode'h2z_sjis(*contenido) &jcode'convert(*subject,'sjis'); &jcode'convert(*infor,'sjis'); &jcode'convert(*contenido,'jis'); &jcode'convert(*res_msg,'jis'); print "Content-type: text/html;charset=shift_jis\n\n"; 宜しくお願いします。

    • 締切済み
    • CGI
  • base64_decodeに関して

    base64でエンコードされたPHPソースをデコードし、 その内容を表示させるスクリプト(base64.php)を 実行すると、ブラウザには decode.txt の様に 文字化けした内容が表示されます。 元のソースを表示させる方法は無いでしょうか? base64.php、decode.txt は以下よりダウンロードし、 検討して下さい。 ================================================================ http://www.hp-toolbox.com/base64_decode.zip ================================================================ 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • phpmyadmin文字化けについて

    user_id user_name   mail comment create_datetime    del_flag 4 てst てst 2011-02-13 06:12:50    0 5 あああッ て    2011-02-13 06:15:14     0 このような感じで文字化けします [mysqld] character-set-server = utf8 collation-server = utf8_general_ci init-connect = SET NAMES utf8 default-character-set = utf8 [mysqldump] default-character-set = utf8 [mysql] default-character-set = utf8 の設定もしました 照合順序をtf8_unicode_ciにしました 色々ググッたのですがこのくらいしか設定するものがでてきませんでした ブラウザはchromで見ていますブラウザ側もutf-8になっています 他にもfirefox IEでも同じ結果でした 他に設定するべき項目があったらよろしくお願いします