- 締切済み
CGIでエスケープが必要文字をエスケープしたい
公開されているCGI内で使われている文字を変更したいと思っています。 下記のURLにあるように、そのままでは文字化けする文字があります。 https://sites.google.com/site/fudist/Home/grep/damemoji そこで2文字目を¥でエスケープしたいと思っているのですが、 一文字ずつチェックするのは現実的ではありません。 そこで文字列を入力したら、エスケープが必要な文字に¥をつけてくれる スクリプトを公開しているサイトがないかと探しています。 CGIの文字コードを変換したり、jcode.plを使う方法は 元のCGIの基本部分に触れることになるので行わない方向です。 よろしくお願いします。
- doko-iruka
- お礼率100% (4/4)
- CGI
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- Gotthold
- ベストアンサー率47% (396/832)
perlだよね? quotometa関数でできると思うよ。
関連するQ&A
- cgiスクリプトの文字化け
既存のCGIライブラリ(cgi-lib.plとjcode.pl)を用いて、登録フォームを作りました。しかし、「入力」を押して、CGIを作用させると、文字化けがおこってしまいます。 cgiのなかで、文字コードをeucに変換しています。(jcode::convert機能)サーバーのCGI設定は全て確認しましたし、パーミッションも確認しています。文法などはあってると思いますし、ディレクトリ、文字コード(euc)・改行コード(LF)も確認しています。 他に原因があると思うのですが、回答よろしくお願いいたします。
- ベストアンサー
- CGI
- perl cgi のエンコード SHIFT->UTF-8
こんにちは初心者です。 現在、既存のperl cgiをカスタマイズしております。 エンコードをshift_jisからUTF8に変更したいのですが、表示はCGI自体をUTF-8に変更し普通に見ることができるのですが、書き込みをしようとすると文字化けがおこります。 jcode.plをjcode.pmに変換すればよいらしいまでは分かったのですが、どこをどう変換すればいいのかjcode.pmのサイトを見ても理解できません。簡単な説明サイト紹介やアドバイス等をいただけませんでしょうか?
- 締切済み
- CGI
- CGI(perl)での一部日本語の文字化けについて
perlでCGIを作成しています。jcode.plを使っているのですが、 表示される日本の一部だけが文字化けしてしまいます。 何が原因なのでしょうか。 解決方法について教えてください。 ◆perl文中の記述 ”登録申請を行ってください。” ↓ ◆ブラウザ上の出力結果 ”登録瑞ソを行ってください。” 参考:jcode.pl,v 2.6 1997/12/24 17:01:11
- ベストアンサー
- Perl
- CGI
MacOS10.10のApache2でCGIが動きません。 httpd.confの最後にこう記述してます。 <VirtualHost *:80> DocumentRoot "/Users/ユーザー/Sites/www" ServerName ドメイン <Directory /Users/ユーザー/Sites/www> AllowOverride All Options Indexes MultiViews ExecCGI FollowSymLinks AddType application/x-httpd-cgi .cgi .pl AddHandler cgi-script .pl .cgi DirectoryIndex index.html index.htm index.cgi </Directory> </VirtualHost> 記述は合ってると思うんですが……どこが間違ってるのでしょう?
- ベストアンサー
- Mac
- jcode.plの使い方
最近cgiを始めたばかりの者です。 HTMLでフォームを作り、 FORM action="view.cgi"method="GET" でcgiに渡すようにしました。 CGIで受け取った文字に全角があると %83%8B%83i%83e%83B%83N%83X のような文字化けをします。 調べてみたところjcode.plを使えば 文字化けを回避できるようですがうまく いきませんでした。 質問1.jcode.plを読み込ませるのは 上記のview.cgiで良いのでしょうか。 質問2.require "jcode.pl";といれた後 具体的にどのように受け取ったデータを jcodeに渡せばいいのでしょうか? @data = split(/&/,$ENV{QUERY_STRING}); で@dataに受け取った情報を渡しています。 ご教授頂ければと思います。 よろしくお願いします。
- ベストアンサー
- CGI
- 機種依存文字の文字コード変換
現在、Shift-JISでCGIを作成しています。言語はPerlです。HTMLファイルから送信された文字をDBに登録するのですが、CGIをShift-JISで作成しているのに、DBがEUCとなっているため、jcode.plを利用して文字コードを変換しています。 しかし、文字が機種依存文字である場合、jcode.plでは文字コード変換ができないようで文字化けを起こした文字をDBに登録しようとしてエラーを起こしてしまいます。 何とか機種依存文字をコード変換したいのですが、可能でしょうか?
- ベストアンサー
- Perl
- jcode.pl
日記などのスクリプトを作成しているのですが、とりあえず今まで、そこまでの理由もわからず他のスクリプトに習ってjcode.plをデコード処理部で &jcode'convert(*value,'sjis'); &jcode'convert(*name,'sjis'); のように使ってきました。 ですが、たまたま今回、jcode.pl等を書き忘れてしまったのですが、ブラウザから投稿してみても文字化けという文字化けが起こりません。スクリプト自身はsjisで書いています。ログファイルもどうやらsjisコードで書き込まれているようなのですが、それでもjcode.plは必要なのでしょうか。windows XP にApache + Active Perl での動作と、@niftyで設置して動作を確認しました。 この場合、jcode.plは必要あるのでしょうか?
- ベストアンサー
- Perl
- ver.5.8.8の文字化け
サーバの移転でアクセスログを変更しているのですが、CGIで苦戦しています。 テキストデータが全て文字化けをしてしまいます・・・。 エキストデータ、ソースは全てSJISです。 perlのバージョンが5.8.8になりましたので、それまで使用していたjcode.plが使えないようです。 require './jcode.pl'; jcode::convert($refer, 'sjis') if ($charset); でエラーになります。 jcode.pm用に use Jcode; Jcode::convert($refer, 'sjis') if ($charset); としてもエラーになります。 これはjcode.pmが入ってないからだと思うのですが、 何か方法はないでしょうか? PHPはわかるのですが、Perlは全然わかりません。 どうか、ご教授をお願いします。
- ベストアンサー
- Perl
お礼
ありがとうございます。 quotemetaで変換できるのですね。 このquotemetaをフォームに入力して、変換してくれるサイトを探しているのですが、 該当するサイトはご存知でしょうか。 検索エンジンで「perl quotemeta」で探してみたのですが、見つけ出すことができませんでした。