人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

【Jcode.pmの使い方】kentwebさんのショッピングカート「WEB MART」(http://www.kent-web.com/cart/mart.html)をワードプレスのページ内に設置したいです。しかし、文字コードが、wordpress「UTF-8」・WEB MART「SHIFT_JIS」と違っているため、フォームの情報が、ショッピングカード内では、一部文字化けしてしまいます。WEB MARTには、文字コード変換モジュール「Jcode.pm」が同梱されておりますが、「Jcode.pm 使い方」でググってみたのですが、わかりません。どなたか、Jcode.pmを使って、UTF-8のページでも文字化けせずに、WEB MARTを動かせる手順を教えてください。宜しくお願いいたします

「Jcode.pm 使い方」のウェブページの紹介はではなく、実際の手順を回答にしてください。

●質問者: motoi20
●カテゴリ:コンピュータ インターネット
✍キーワード:pm Shift_JIS UTF-8 Web wordpress
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● JULY
●500ポイント ベストアンサー

Jcode.pm 自体は、この CGI プログラム中で使われているもので、実際に、CGI プログラムの中身を見てみると、admin.cgi と order.cgi で使われています。


このプログラムが Shift_JIS での出力を前提にしているので、もし、これを使うのであれば、

  1. CGI プログラムのファイルをエディタ等で UTF-8 に変換して保存。
  2. プログラム中にある、「Jcode::convert(なんちゃら, 'sjis')」という部分の 'sjis' を 'utf8' に変更。
  3. プログラム中にある、'shift_jis' を 'UTF-8' に変更。

といった修正作業が必要になります。


でなければ、この CGI の出力をインラインフレームの中にでも入れて、「全体は UTF-8 だけど、この中は Shift_JIS」といった形で逃げられるかもしれません。

◎質問者からの返答

回答いただき、ありがとうございます

ご指摘いただいた3つのことを実施したところ、Internal Server Errorになりました

「HTTP エラー 500(Internal Server Error): サーバーによるリクエストの実行中に、予期しない状況が発生しました。」


ちなみに、1.のご指摘を置いておいて、プログラムファイル・tmplファイルの文字コードを、

Shift_JISで実行すると、表示されますが、文字化けした状態になります

※ tmplファイルは、カートを遷移するときに表示されるHTMLファイルのことです


ちなみに、ご指摘に対する変更点は以下のとおりです

何か、間違っていること、もれていることがありますでしょうか

大変お手数ですが、ご確認、ご返信いただけますと大変嬉しく思います

よろしくおねがいいたします



> 1. CGIプログラムのファイルをエディタ等で UTF-8 に変換して保存。

WEB MART内のcgiファイルをUTF-8に書き換えました

(文字コード変換ツール for .NET 2.0を使いました)

admin.cgi

check.cgi

init.cgi

mart.cgi

order.cgi


WEB MART内のtmplファイルをUTF-8に書き換えました

もちろん、メタタグもUTF-8に書き換えました

※ tmplファイルは、カートを遷移するときに表示されるHTMLファイルのことです


> 2. プログラム中にある、「Jcode::convert(なんちゃら, 'sjis')」という部分の 'sjis' を 'utf8' に変更


■admin.cgi

555~556行目、sjis → utf8 に変換

# コード変換

Jcode::convert(\$q_item, 'sjis');

Jcode::convert(\$q_item, 'utf8');

■order.cgi

560~561行目、sjis → utf8 に変換

# コード変換

Jcode::convert(\$mbody1, 'jis', 'sjis');

Jcode::convert(\$mbody2, 'jis', 'sjis');

Jcode::convert(\$mbody1, 'jis', 'utf8');

Jcode::convert(\$mbody2, 'jis', 'utf8');


687~688行目、sjis → utf8 に変換

# コード変換

Jcode::convert(\$q{$key}, 'sjis');

# コード変換

Jcode::convert(\$q{$key}, 'utf8');



> 3. プログラム中にある、'shift_jis' を 'UTF-8' に変更。


■admin.cgi

613行目、shift_jis → UTF-8

print $q->header(-charset => 'shift_jis');

print $q->header(-charset => 'UTF-8');

617行目、shift_jis → UTF-8


■mart.cgi

117行目、shift_jis → UTF-8

print $q->header(-charset => 'shift_jis', -cookie => $cookie);

print $q->header(-charset => 'UTF-8', -cookie => $cookie);


■order.cgi

132行目、shift_jis → UTF-8

print $q->header(-charset => 'shift_jis');

print $q->header(-charset => 'UTF-8');


301行目、shift_jis → UTF-8

print $q->header(-charset => 'shift_jis', -cookie => $cookie);

print $q->header(-charset => 'UTF-8', -cookie => $cookie);


621行目、shift_jis → UTF-8

print $q->header(-charset => 'shift_jis', -cookie => $cookie);

print $q->header(-charset => 'UTF-8', -cookie => $cookie);



■check.cgi

20行目、shift_jis → UTF-8

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ