• 締切済み

PerlスクリプトをShift_JISにエンコードしたい

EUCで書かれたスクリプトをShift_JISで保存しなおしたのですが、設置してみると、500エラーになりました。 構文チェックCGIにかけてみたら、 「Unrecognized character \x83 at prof.cgi line ***.」 ということで、***行目を調べてみたところ、どうも「ポイント」という文字が引っかかっている模様です。 「ポイント」という言葉を「点数」に変えてみても、「お気に入り」という文字がひっかかったりしていて、キリがありません。 EUCで書かれたスクリプトをShift_JISで使う方法について詳しく書かれたサイトや、↑のような状態を解決するための方法をご存知の方、いらっしゃいましたらよろしくお願いいたします。

みんなの回答

noname#41855
noname#41855
回答No.1

一部のShift_JIS漢字コードに半角英記号(|,},¥,…)が含まれているのが原因です。 以下のサイトが参考になるかと思います。 http://homepage1.nifty.com/nomenclator/perl/shiftjis.htm

noname#23063
質問者

補足

結局、問題のある文字を全部エスケープしていくしかないということでしょうか。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • VBでShift_JISへurlエンコードできないでしょうか?

    VB6もしくはVBAですが、 文字列をShift_JISへurlエンコードしたいと思います。 utfやeucは方法があったのですが、Shift_JISに関しては 見つかりませんでした。 よろしくお願いします。

  • シフトJISでURLエンコード

    IEのJavaScriptのescapeで日本語をURLエンコードすると、UnicodeでURLエンコードしてしまいますが、シフトJISのままURLエンコードする方法はないのでしょうか? 文字列のシフトJISコードを取得する方法でも良いのですが・・・。 まったく、Unicodeなんて役に立たないものを無理矢理標準にしようとしないで欲しいナ!>MS

  • PostgreSQLの標準文字コードをShift_JISにしたい

    CygwinでPostgreSQLを動かしています。 PostgreSQLの標準文字コードをShift_JISにしたいんですが、どうコマンドを打てば良いか分かりません。 本にはEUC-JPを指定する際は $ initdb -D /usr/local/pgsql/data -E EUC_JP と打つと書いてありますが、EUC_JPの部分をShift_JISとするとエラーになります。 Shift_JISに設定するにはどのように打てばよいんでしょうか?

  • EUCのデータファイルをShift_jisで読み込む方法

    初めまして。 perlの知識は殆ど無く、見よう見まねで改造をするレベルです。 質問させて頂きたいのですが、 あるスクリプトにてEUCで保存(書き込まれた)されたデータファイルを、違うスクリプトにてそのデータファイルを読み込む際に、Shift_jisで読み込みたいのですが、どのような方法がありますでしょうか? それぞれのスクリプトを共通の文字コードで保存すれば良いのですが、データを保存する側のスクリプトでShift_jisにすると、"表"や"ー"などのデータが登録できなく、それの対処方法が解らなかった為、そのスクリプトとデータファイルをEUCで保存する事によって解決する事はできましたが、今度は別のスクリプトでそのデータファイルを読み込む必要があり、読み込む側ではShift_jisで保存されているスクリプトですので、文字化けが起こりデータファイルを読み込む事ができない状況です。 この読み込む側のスクリプトをEUCで保存をするのも検討しましたが、読み込む側のスクリプトが一つではなく複数ありますので、できればこれらはShift_jisのままで、データファイルを読み込む際に「Shift_jisに変換して読み込む」行為ができればと思い、質問させて頂きました。 ※具体的には会員登録用スクリプトとその登録されたデータファイルがEUCで保存されており、会員データファイルを読み込む全く別の掲示板などのスクリプトがShift_jisで保存されています。 もし宜しければご教授頂けますと幸いです。 宜しくお願い申し上げます。

    • ベストアンサー
    • Perl
  • EUC-JPをShift_JISに変えても大丈夫ですか?

    YahooのジオクリエイターでHPを作っていたら文字コードが<meta http-equiv="content-type" content="text/html; charset=EUC-JP">このようになっているんですが <meta http-equiv="content-type" content="text/html; charset=Shift_JIS">に変えてしまっても問題ないんでしょうか? 複数ページがあって、いくつかのページだけEUC-JPで、ほかのページはShift_JISでした。 Shift_JISがメジャーと聞いたので全てのページの文字コードをShift_JISに変えてしまおうと思うんですが ほかのタグなど一切変えず文字コードだけ変えて、今まで普通に見れてたものが見えなくなったり、何か不具合が起こることはないんでしょうか? 今後、ジオクリエイター以外の環境でHPを作成・編集することもできるようにShift_JISで統一させておいたほうがいいですよね? よろしくお願いします。

    • ベストアンサー
    • HTML
  • phpの文字コードをシフトJISに変換する

     SSIを利用して、PHPプログラムをHTMLページの中央部に呼び出して表示しようとしています。  それ自体は単純なことですが、HTMLページの文字コードはシフトJISで、PHPの文字コードはEUCと、異なるため、どうしても文字化けが起きてしまいます。  これを解消する方法はありますか。  PHPの出力文字コードをシフトJISにするのが一番単純かとも思いますが、他の方法も含め、なにかよい方法がありましたら教えてください。

  • シフトJISコード

    1文字を入力して(例えばWordで) その文字のシフトJISコードを知る 方法をご存知の方、 教えてください。 私の質問例が悪いのかもしれませんが 文字->シフトJISコードを 知りたいのです。 逆は、わかるのですが・・・。

  • 文字コードEUC→SHIFT-JISにすると動作しません

    http://cgikon.com/search/detail.php3?menu=1&cgi_id=412 上記の簡単なスクリプトを使いたいと思っています。 文字コードがEUCとなっており、そのままの状態で設置すれば動作します。 EUCではなく、SHIFT-JISにして動作させたいのですが、中に書かれている「EUC - JP」を「SHIFT - JIS」に書き換えて、またファイルの文字コードも「SHIFT-JIS」として保存しました。 またCSVデータも「SHIFT-JIS」に変換して保存。 変換したファイルをアップしてみましたが、表示される表の数値の箇所が真っ白になってしまいます。 一番上の行と一番左の列は表示されます。 足し算される数値の部分だけが表示されません。 どのようにすれば、EUCからシフトJISに変換して、動作させる事ができるのでしょうか。 アドバイスをお願い致します。

    • ベストアンサー
    • Perl
  • EUCで保存されたスクリプトにてShift_jisでのHTML出力

    perl見よう見まねで改造ができるレベルの者です。 表題の件ですが、ある登録スクリプトをEUCで保存し、登録データファイルもEUCで保存を行っているのですが、携帯からも対応させる為に、携帯用ページではShift_jisで表示を行いたいと思っています。 $word = "ああああ"; &jcode'euc2sjis(*word); 上記のようなコードで、EUCで保存されたスクリプト内の文字がShift-JISに変換されるというのを見つけたのですが、これがprint文の場合どうすれば良いのかわかりません。 例えば、 print "Content-type: text/html;charset=shift_jis\n\n"; print <<_HTML_; <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> </head> <body> <form method="POST" action="CGIファイル"> 登録項目1<br> <input type="text" name="touroku1" value="$in{'touroku1'}"><br> 登録項目2<br> <input type="text" name="touroku2" value="$in{'touroku2'}"> </form> </body></html> _HTML_ 上記のようなHTMLをShift_jisで表示する場合、どのようにすればよいのでしょうか? use encoding 'euc-jp', STDOUT=>'shift_jis' while(<>){ print $_; } 上記のようなコードも調べたのですが、今一適用方法が解らない状況です。 また、携帯用ページではShift_jisで表示を行いたいのと同時に、登録データファイルにはEUCで保存されるようにする方法もご教授頂けますと幸いです。 宜しくお願い申し上げます。

    • ベストアンサー
    • Perl
  • エンコード

    ローカルで自分が作成したPHPファイルにアクセスした場合、ブラウザのエンコードが自動的にシフトJISを選択します。シフトJISだと文字化けし、手動でEUCを選択すると直ります。しかしページを移動するごとに文字化けをしてしまいます。 どこを直せばよいか教えてください。

    • 締切済み
    • PHP