HTMLフォームの、name=aのテキストボックスに「あ」と入力しCGIにSubmitすると、a=%82%A0とバイトコードに変換されわたされますよね
受け側のCGIで下記の様にそのパラメータを$aに代入すると、$aには「あ」となって代入されるのですが、あえて「あ」ではなくバイトコードの「%82%A0」で代入するようにするには、どうしたらよいのでしょうか?
#!/usr/local/bin/perl
require 'cgi-lib.pl';
require 'jcode.pl';
&ReadParse;
$a=$in{'a'};
No.1ベストアンサー
- 回答日時:
回答ではありませんが、
「あ」を「%20%A0」に変換するというのではだめでしょか
$a = "あ";
$a =~ s/([^a-zA-Z0-9*\-.@_])/sprintf("%%%02X", ord($1))/eg;
$a =~ s/%20/+/g;
print $a;
回答ありがとうございました。
送信時エンコードしたものを受取ってデコードしたあと、もう一度エンコードするのですね。
なるほど使えます。・・・しかし結構むずかしい質問だったのかな?受取ったあとデコードしないというのは
No.2
- 回答日時:
こんばんわ。
cgi-lib.plはフォームデコード用のライブラリですから、
それを通してデコードされるのは普通の動作ですよね。
自分でデコードというか、受取データを処理しましょう。
(それか再エンコードする。)
#まず、POSTかGETかを判定します。
#次に、フォームから送られてくるデータを取得して、
#バッファに入れます。
if ($ENV{'REQUEST_METHOD'} eq "POST")
{
if ($ENV{'CONTENT_LENGTH'} > 51200) {exit;}
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
} elsif ($ENV{'REQUEST_METHOD'} eq "GET") {
$buffer = $ENV{'QUERY_STRING'};
}
#受取ったデータをフォーム毎に分割し連想配列に入れる。
@pairs = split(/&/,$buffer);
foreach $pair (@pairs)
{
($name, $value) = split(/=/, $pair);
$FORM{$name} = $value;
}
それでは。
うぁ!cgi-lib.plの偉大さを知らされますね!
親切にコメントまで書いてくれてるのに、なんとのぉ~しかわからんぞ、
とりあえず#1の人の回答で乗り切り、時間のあるときにこの方法試してみます。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- CGI 古ーくからフリーのtree.cgi掲示板を利用させてもらって来ましたが、最新でなにか復活できないか? 2 2023/04/07 10:43
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- CGI CGIで出力するhtmlの<!DOCTYPE html>等のタグは要りますか? 2 2023/02/05 21:26
- Perl Perlのエラーについてご教授ください。初心者です。 CGIを別サーバに移したところ、Perlのバー 5 2023/05/31 10:48
- Perl Perl の外部モジュールの利用方法 3 2022/07/10 18:34
- MySQL Mac です。ローカルホストの phpMyAdmin にアクセスできません。 1 2023/06/06 17:14
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
常用漢字?でない文字を判定す...
-
ダブルクォート文字などをフォ...
-
CSVファイルの中で、「 , 」カ...
-
エクセルで数値を全角文字(カ...
-
EXCELからCSVにすると余計なカ...
-
VBA 置換文字がみつからない時
-
マクロを使ってフォルダー内に...
-
VBA EXCEL あるセルの中の一...
-
「何とかで始まり、何とかで終...
-
pythonエラー
-
データにカンマが入ったCSVデー...
-
全角入力
-
英数字のみ全角から半角に変換
-
パイソンエラーについて
-
word差し込み印刷 半角カタカ...
-
[VBA][Excel]クリップボードか...
-
CString から LPCTSTRの型に変換
-
VBA 文字に半角が含まれて...
-
全角英数字の必要性が理解できない
-
char型全角数字から、int型半角...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
InputMan の imTextについて
-
戻り値の意味がわかりません…
-
文字化けを元に戻せますか?
-
正規表現でカンマを対象にする方法
-
utf-8のマシンでsjisのデータフ...
-
unicodeの表示
-
ダブルクォート文字などをフォ...
-
チェックボックスの複数選択の...
-
jcodeを使ったgetcode
-
jcodeでsjisに変換できない
-
特殊文字をPOSTした際の動作は?
-
テキストエリアに半角「\\」ま...
-
文字化けの事で?
-
機種依存文字の文字コード変換
-
jcode.plについて
-
文字実体参照が勝手に変換され...
-
「数値文字参照への変換するソ...
-
nkfとjcodeの使い方の違いについて
-
半角と全角の文字数カウント方法
-
常用漢字?でない文字を判定す...
おすすめ情報