• 締切済み

プログラムをUTF-8多言語のスクリプトに変更

 Yomiメーラー(http://yomi.pekori.to/yomi-mailer.html)というフリーウェアを利用して、UTF-8の多言語対応のスクリプトに変更しております。 当方、プログラミングの知識がなく、Perlをマニュアル通りに設置するだけの技能しかないので、「中文電脳/UTF-8で簡単多言語CGI」というWebページを参考にUTF-8化に挑んでおります(※上記サイトのURLは長くてうまく記述できそうもないので、Googleで検索してみてください)。  上記「中文電脳/UTF-8で簡単多言語CGI」の指示に従ってそのフリーウェアをUTF-8対応にしていきましたが、どうしても私の猫の額のような知識では分からない箇所が出てきました。  「mimew.pl」というファイルの中で様々な文字モードのための処理のためのスクリプトが書かれていると思いますが、どこをどう無効にすればよいのか分かりません。  テキストファイルとしてこの「mimew.pl」を参考用に、以下の場所にアップロードしてみました(文字化けする場合UTF-8でエンコードしてください)。 http://cgi.www5b.biglobe.ne.jp/~xpress/test-2/img-box/img20080804045138.txt  ご教授頂ければ幸いです。

noname#165180
noname#165180
  • Perl
  • 回答数1
  • ありがとう数4

みんなの回答

回答No.1

良く分かりませんが、文字コードを適切に変換して Base64 または quoted-printable エンコードするライブラリでしょうか。 恐らく現在では、此の様なエンコード用途には MIME::Base64 モジュールや MIME::QuotedPrint モジュール等を使うのが一般的だと思います。 他のファイルで mimew.pl が使用されている部分を、全て此れ等のモジュールが提供する関数で置き換えるのが良いのではないでしょうか。 http://perldoc.jp/docs/modules/MIME-Base64-2.12/Base64.pod http://perldoc.jp/docs/modules/MIME-Base64-2.12/QuotedPrint.pod 詰り、 require 'mimew.pl'; を全て use MIME::Base64; use MIME::QuotedPrint; で置き換え、 &bodyencode($body); の様な部分を全て encode_base64 $body; で置き換え、 &bodyencode($body, 'qp') の様な部分を全て encode_qp $body; で置き換えると言う方法です。 其の他の &benflush; 等と言った部分は削除する事に成ります。 又、完全に置き換え終わったならば mimew.pl は不要に成ります。 文字コードの変換に関しては、入力 / 出力共に UTF-8 と仮定すれば必要無いのではないでしょうか。 但し自信は有りません。御了承下さい。

関連するQ&A

  • スクリプト言語を 他の言語に書き換えたい。。

    エキサイトブログにカウンターをつけようと思って探していたら、とてもかわいいのをみつけました。 使ってみようと思ったのですが、<table>,<frame>,<iframe>,<script> タグは使用できません と書かれており、UPすることができませんでした。 なんとかして、エキサイトブログで使える言語に直すことは出来ないんでしょうか? 使いたいカウンターは下記のものです。 <script type="text/javascript">design=2753;</script> <script type="text/javascript" src="http://counter2.yaboo.jp/c.js"></script> なお エキサイトブログには↓のカウンターなら設置できました。 <A HREF="http://www.acounter.net/count/"><IMG SRC="http://www.acounter.net/count/count.cgi?vanila"></A>

    • 締切済み
    • CGI
  • チャットCGIの内容をUTF-8で出力したい(文字コードの問題)

    フリーで配布されているCGIスクリプト、具体的にはMOGさんの配布されているCFX CHAT V9というチャットスクリプトは、Shift-JIS対応となっていますが、必要があってUTF-8で出力したいと考えているのですが、これは可能でしょうか。 jcode.plあたりをいじれば良いのかと思い、いろいろ調べてやってみましたが(Jcode.pmにするなど)、小生の知識ではお手上げ状況です。 (すなわち、小生は配布されているチャットの設置は出来る程度の知識ですが、Perlは初級以下ということです。)

    • ベストアンサー
    • Perl
  • Yomi-Searchの設置方法について

    ホームページにサイト内検索機能を設置したいと思い、 こちら(http://yomi.pekori.to/)のページから Yomi-Search4.22をDLしました。 サーバがniftyなので、 こちら(http://yomi.pekori.to/help/ys4/index.html)の 「@niftyでの設置」を参考に、 ファイルの修正、パーミッションの変更を行いましたが、 ”ドメイン/admin.cgi”をアドレスバーに入力しても 「ページが表示されません」となってしまいます。 ちなみに、ニフティでのCGIの設置については、 http://homepage.nifty.com/make/cgi_own/ を参考に、 ■cgi-binのディレクトリにCGIに関するファイルを置き、 ■homepageのディレクトリにhtmlファイルなどを置きました。 CGI、Perlについては全く知識がなく、 パーミッションの設定が間違っているのか、 設置する場所を間違っているのかさえ分からない状態です。 どなたかご教示頂きたく、 何卒よろしくお願い申し上げます。

    • 締切済み
    • CGI
  • パールスクリプトを呼び出すときのパスの指定について

    わたしはあるインターネットのスクールに通っていたのですが パスについて頭が混乱しています。 CGIのコースのアクセスカウンターの授業で ディレクトリ構造が /usr/home/www/s1000000/cgi-bin/counter.pl となっているパールスクリプトをhtmlファイルのimgタグで呼び出すとき <img src="/usr/home/www/s1000000/cgi-bin/counter.pl?NAME=username&KETA=4">(その1) と記述したらうまく動作せず、 <img src="/~s1000000/cgi-bin/counter.pl?NAME=username&KETA=4">(その2) と訂正され、解決しました。 サーバのローカルルールでホームディレクトリのファイルは/~で呼びだせるように なっているようなのですが、それならば(その1)と(その2)は 同じことだと思うのです。 パスの相対指定はわかるのですが、絶対指定やurl指定がわかりません。 (その1)は絶対指定で(その2)はurl指定ということなのですか? (その1)と(その2)の違いは何ですか? なぜ(その1)では動作しないのですか? パスの根本的なところを知りたいです。 どなたか教えていただければ幸いです。

    • ベストアンサー
    • CGI
  • UTF-8 -> CP1251にエンコードするには?

    Perlの勉強しながらTeraPadを使って簡単なCGIをつくっている初心者です。 メインはUTF-8(多言語混在なので)で書いていて、sendmailを使ってCP1251形式(メールは全文キリル語)のメール送信したいのですが、エンコードはどのようにすればいいのでしょうか?タイトルも本文も文字化けしてしまって全く読めません(;_;) 日本語ならjcode.pl等を使って &jcode'convert(*title, "jis") のようにすればいいのでしょうがキリル語(CP1251かKOI8=R)の変換モジュールを探しても全く見つかりませんし、糸口さえ分かりません。どなたか詳しい方助けてください!ホントに困っています(T_T よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • perl cgi のエンコード SHIFT->UTF-8

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

    • 締切済み
    • CGI
  • 受信、消去が可能なPHPメーラースクリプトを探しています。

    Yahoo!メールのようにWeb上で受信できるメーラーを探しています。 スクリプト言語は基本的にPHPやCGIなどであればOKですが条件として受信が可能なこととメールボックスから選択したメールを消去できるのもです。 (レッツPHPさんのサイトでメールチェッカーという受信のみ可能なスクリプトを見つけましたが消去までは出来ないようです。) どうぞよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • UTF-8に変換

    open( IN, "data.cgi" ); @f_data = <IN>; close( IN ); $i = '1'; open( OUT, ">log.cgi" ); select OUT; foreach( @f_data ){ if( $i > 10 ){ last; } ( $f_data1, $f_data2, $f_data3, $f_data4 ) = split( /<>/ ); $f_data1 =~ s/ //g; print "$f_data1階 $f_data4\n"; $i++; } #書き出し先ファイルを閉じる select STDOUT; close( OUT ); 上記スクリプトでlog.cgiに書き出される文字コードをUTF-8に変換したいのですが、いろいろな解説サイトの説明通りに行うと、私のやり方が間違っているだけだと思いますが、サーバエラーになっていまいます。サーバはxrea.comを利用しております。 data.cgiの文字コードはSJISです。 上記スクリプトの場合は、どのように変更すればよろしいのでしょうか?宜しくお願いいたします。

    • ベストアンサー
    • Perl
  • 各種スクリプト言語の記述時の文字コードについて

    掲題の通り、メジャーなLL言語についての文字コードについて質問です。 例えば PHPでコンソール用にちょっとしたものを書くとき #! /usr/local/php print("文字列"); 書いて、ターミナルで php ./sample.php などとすると問題なく「文字列」という文字が表示されます。 このとき、ファイルはUTF-8で書いたとします。 次に、別のLL言語pythonで下記の様に記述したとします。 #! /usr/local/python print ("python文字列"); 上記内容を python ./sample.py などと実行すると SyntaxError: Non-ASCII character '\xe6' in file と上記のようなエラーがでます。どうやらアスキーコードの範囲外のバイト数が含まれているようです。 これを #! /usr/local/python #coding: utf-8 print ("python文字列"); としてやると問題なく「python 文字列」と表示されると思います。 これはRubyでも同じだと思います。 また同じ様に #! /usr/bin/bash echo "文字列" とシェルスクリプトで上記の様にかいてやると・・・ 問題なく「文字列」と表記されます。 ではなぜシェルスクリプト(bash)やPHPはマジックコメントを記述しなくても 暗黙のうちにUTF-8で文字列が表記されて pythonやRubyは明示的にUTF-8とマジコメを記述しなければならないのでしょうか? ご教授ください。

    • ベストアンサー
    • PHP
  • UTF8 URLエンコード

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

    • 締切済み
    • CGI