• ベストアンサー

英語のフリースクリプトで日本語を使いたい

アメリカのCGIサイトを見ていたらショッピングカートのスクリプトで良いものがありました。シェアウェアなので買う前に聞いておきたかったのですが(お試しダウンロードができないので)、客が見る部分だけでも日本語表示に改造したいのです。 スクリプトの中に「require './jcode.pl'; 」などと書き入れて、jcode.plを設置すれば日本語が使えるものでしょうか? 当方、日本のスクリプトの改造・設置経験はあります。

  • rasse
  • お礼率64% (18/28)
  • CGI
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • taba
  • ベストアンサー率61% (349/567)
回答No.1

回答がついていないようなので、簡単に。 >スクリプトの中に「require './jcode.pl'; 」などと書き入れて、jcode.plを設置すれば日本語が使えるものでしょうか? 使えません。requireするだけでは、jcodeのライブラリを使えるようになるだけなので、必要な部分で文字コードの変換が必要になります。日本語に関する部分ですから、フォームで日本語が必要になる部分の送受信のプログラムに手を入れる必要があります。 CGIとしか書いていないのですが、perlですよね?(perlでないなら、そもそもjcode.plが使えませんけど) カートだということなので、最後の住所や氏名などを書くところあたりの改造がメインになるでしょう。ダウンロードする前に、改造してもいいか確認しておく必要があると思います。

rasse
質問者

お礼

お礼がむちゃくちゃ遅くなり、申し訳ありませんでした。 文字コードのことは、まったく考えておりませんでした。 簡単なフリースクリプトで改造にチャレンジしてみたらうまくいきましたが ショッピングカートは不安なので考え中です。ありがとうございました。

関連するQ&A

  • jcode.plアップロード不要の場合の設定変更

    CGI設置にあたり、設定変更で悩んでいます。 jcode.plがサーバーにプリインストールされているためアップロードは不要で、require 'jcode.pl'; と記載するようにとのことです。 require "./jcode.pl"; となっているものについては問題なかったのですが、 $jcode = './jcode.pl'; 中略 require $jcode; と記述されているものを、どのように書き換えたらよいのか分かりません。 ご教授のほど、どうぞよろしくお願い致します。

    • 締切済み
    • CGI
  • 日本語文字化け(GETメソッド?)

    以下のようにすると日本語の受け渡しがうまくいきません。(抜粋) そももこの場合、日本語の受け渡しは、出来ないのでしょうか。 それともコンバートのやり方がまずいのでしょうか。 お知恵をおかしください。宜しくお願い致します。 URL:test.cgi?name=日本語 #!/usr/local/bin/perl require './cgi-lib.pl'; require './jcode.pl'; # 読込 &getinput; $name = $form{'name'}; print "Content-Type: text/html\n\n", $name; exit; sub getinput { &ReadParse; while (($key,$val) = each %in) { &jcode'convert(*val, "sjis", "", "z"); $form{$key} = $val; } }

    • 締切済み
    • CGI
  • jcode.pl と &ReadParse()

    CGIファイルの先頭は #!/usr/local/bin/perl require './cgi-lib.pl'; require './jcode.pl'; &ReadParse(); という感じになっています。 ここでのの require は、日本語を使うためのもの だと思っています。合っていますか? &ReadParse() というのは何ですか? require と関係があるみたいです。 require を書かずに &ReadParse() を書くとCGIエラーになります。

    • ベストアンサー
    • CGI
  • 英語表記の海外向けショッピングカート(管理画面は日本語)を探しています

    米国サーバーにて、海外向けのオンラインショップを開設すべく、ショッピングカートを探しています。表に出ているところはすべて英語表記で、管理画面は日本語になっているショッピングカートCGI等をご存知ないでしょうか。ユーザー設置型のCGIでなければ、米国サーバー上におけるASPでも結構です。ただし管理画面は日本語が望ましいです。よろしくお願いします。

  • perlの日本語文字コードはどうすべき?

    perlで細かいことを理解できないままに呪文のように頭に require 'cgi-lib.pl'; require 'jcode.pl'; を使っていました。 そのうち文字化けなどの問題も出て、いろいろ調べたり質問したりして、jcode.plは古いからJcode.pmを使いなさいと指摘を受けたので、 require 'cgi-lib.pl'; require 'Jcode.pm'; と呪文変更を行いましたが、これについての使い方を理解せぬうちに、use Encode qw(from_to encode);としなさいと指摘を受け、 require 'cgi-lib.pl'; use Encode qw(from_to encode); と変えて使っていました。 ところが、このパターンを使っていたところ、GETでのデータの受渡がうまくできない(internal server error)となることに気づきました。 2つ目のパターンでも同じでした local($key,$val); undef(%in); &ReadParse; my($method) = $ENV{'REQUEST_METHOD'}; if ($method eq "GET"){ $QUERY_DATA = $ENV{'QUERY_STRING'}; }elsif ($method eq 'POST'){ read(STDIN, $QUERY_DATA, $ENV{'CONTENT_LENGTH'}); }else{ &error; } データの受信はこのようにはじめています。 そもそもJcode.pmやuse Encode qw(from_to encode);というのはjcode.plに変わる日本語変換のパッケージなのでしょうか? また、 require 'cgi-lib.pl'; require 'jcode.pl'; use Encode qw(from_to encode); とするとGETでの受渡も問題なかったのですが、2つを混在させても問題ないのでしょうか? というのも、メール送信で文字変換させるときに sub jis{ my $msg = $_[0]; Encode::from_to($msg, "shiftjis", "iso-2022-jp"); return $msg; } としているので、use Encode qw(from_to encode);がないとEncode::from_to()が使えないのかなと想像し2つをセットで使用しています。(冒頭でuse Encode qw(from_to encode)を宣言し、変換部分でEncode::from_to()を使用) jcode.pl、Jcode.pm、use Encode qw(from_to encode)、Encode::from_to()の関係について教えてください。 もちろん自分でもネットで調べてみましたが、思うように解説してあるところが見つからず困っています。

    • ベストアンサー
    • Perl
  • CGIでショッピングカートの設置方法

    こんにちは 今CGIを使ってショッピングカートの 設置をしているのですが なぜか表示されないのです。 最初このやりかたで表示されたので 間違っているのかわからなくなってしまって・・ ディレクトリの入れ方合ってると思うのですが・・ public_html (ホームディレクトリ) # | # +-- cart / cart.cgi # | cartini.cgi   # | admin.cgi   # | data1.cgi # | data2.cgi   # | raw.txt   # | jcode.pl   # | # +-- lock   / こう書いてありました。 パールの指定も合っていると思います。 (一度表示されたので) 最初はモードチェックも出来たのに できません。 どうなっているのか困っています。 どうぞよろしくお願いします。

  • ニフティのCGIエラーの原因

    私はCGIに対してはまったくの初心者なのですが、今KENT-WEBからのCGIスプリクトでショッピングカートの設置をしています。FFFTPで転送後、どうしてもエラーが出てしまうのです。 しっかりアスキーモードで転送しているし、CGI-BINフォルダに設置しています。Perl確認済みです。あとJcode.plも、転送しています。 あとはどこに原因があるか本当に分からず、困っています。 どうしたらエラーがなくなるのか、CGIの知識がある方、どうか教えてください。よろしくお願いします。

    • 締切済み
    • CGI
  • perlのMIMEモジュールの代用ができるスクリプトは?

    CGIでメール受信処理をするために、Net::POP3の使用はできましたが、MIME系のモジュールがサーバーに用意されていないらしく、受信したメールの解析がうまくいきません。 モジュールなので、サーバーのPERLに管理者が追加しないといけないと思うのですが、お願いしても断られてしまいました。 jcode.plやcgi-lib.plのように、requireで読み込むようなパターンにしようと思うのですが、代用できるようなスクリプトをご存知の方はいらっしゃらないでしょうか? MIME-Base64 MIME-tools MailTools IO-stringy の四点に変わるものを探しています。 よろしくお願いいたします。

    • ベストアンサー
    • CGI
  • CGIでjcode.plを読み込めなくなりました

    さんざん検索をかけて色々試したのですが、どうしても解決できず どなたかご存知のかた、教えてください。よろしくお願い致します。 つい昨日までちゃんと動いていたCGIが突然 「jcode.plがありません」 と訴えてきました。 4月にサーバーを乗換え丸2ヶ月、問題なく動いていたのに 突然です。何がなんだか分かりません。 もちろん、このCGIに関わるファイルは一切いじっておりません。 自分なりに検討した結果 引っかかっているのは以下のコード # 漢字コード変換ライブラリを読み込む if (-f "jcode.pl") { require "jcode.pl"; } else { &errexit("jcode.plがありません。\n"); } -略- &jcode'convert(*tmp, $kcode_cgi); このふたつです。jcode.plを読み込めない為にもれなく後出の呪文が効かないんだろうなという事は推測しているのですが。 このためフルパスでも試しましたが変化なし。 この読み込みをしなければ、CGIは取りあえず表示します。 なので、日本語変換プログラム以外は正常に動作しているようです。 どなたか同じような経験の有る方いらっしゃいませんか? アドバイスよろしくお願い致します。

    • ベストアンサー
    • CGI
  • POSTで受けたデータを jcode.pl するには

    あまりに初歩的で書き込むのが恥ずかしいです。 今、フォームからアンケートを自分宛にE-Mailで もらえる CGI を書いています。 日本語処理以外の部分はほとんど全部動きました。 しかし、日本語のテキストは、メーラ(NC4.7付属) で受信すると、「%ほにゃらら」みたいな表現に なっていて、そのままでは読めません。 jcode.pl の使い方が間違っているらしいことは 簡単に推測できますが、ではどうまちがっている のか見当がつきません。 内容: アンケートのフォームで使用しているフィールド名 は、value01~value66です。 そこで、Actionで指定している cgi で、以下のように 記述してみました。 #!/usr/local/bin/perl require './cgi-lib.pl'; require './jcode.pl'; #日本語コード変換処理 &jcode'convert(*value,'jis'); #連想配列に読み込み &ReadParse (*value); $to = 'nydela@imasy.or.jp'; $ipaddr = $ENV{'REMOTE_HOST'}; この後、メール・ファイルを開いてSendMail してやると、66個のフィールドが全部届き ますが、日本語は読めません。jcode.pl と cgi-bin.pl は、この cgi と同じディレクトリに あります。 日本語が入力される可能性のあるフィールド 番号は分かっているので、&ReadParse の後で 個別に convert したらいいのかと思ったのですが、 今度は連想配列の要素を jcode'convertに どうやって渡したらいいのかわからなくなりました。 アドバイスお願いします。 あと、どういうわけか、 $ipaddr = $ENV{'REMOTE_HOST'}; も、ブランクしか帰しません。ちなみに$ENVを たとえば PATH に変更しますと、きちんとその 値を返します。これもアドバイスお願いします。

    • ベストアンサー
    • Perl