• ベストアンサー

複数行URLエンコードができるCGIまたはTOOL(エディタなど)を探しています

kokucho81の回答

  • kokucho81
  • ベストアンサー率61% (157/255)
回答No.1

いや~、教えてGOOに来るのも久しぶりだな~。 ひとつ回答して行くかな。 なになにですと? ふむふむ。 エンコードは $line =~ s/(\W)/'%'.unpack("H2",$1)/eg; で$lineの中に入った文字列がエンコードできまするぞ。 CGIに合わせて改造しなされ。 なにかファイルをエンコードしたいということであれば、 while(<>) { s/(\W)/'%'.unpack("H2",$1)/eg; print; } としたファイルをconv.pl とでも名づけ、 「perl conv.pl エンコードしたいデータファイル名 > エンコードしたものを出力したいファイル名」 とすれば、しゃかしゃかエンコードしてくれますじゃろ。 ではでは、さらば。

s5429
質問者

お礼

kokucho81さん、御回答ありがとうございます。 いろいろと試してみたのですが、エンコードをすることはできませんでした。 検索CGIのスクリプトに、記述する場所を変えてみたり、「$line」を出力させたい変数(?)「$data[*]」に変えてみたりしてみましたが、やはりダメでした。 もう少し、詳しく御説明したいと思います。 エクセルで作成されたデータを使い、データ検索をさせています。 出力側には$data[*]というのを使用しています。 「*」にはエクセルでの列番号を表しており、その列で該当するデータがあれば、その文字列を表示するようになっています。 例えば$data[2]としますと、エクセルで2列目の中で検索のキーワードに該当する文字列を表示させる。と言うことです。 単純に $line =~ s/(\W)/'%'.unpack("H2",$1)/eg; を $data[*] =~ s/(\W)/'%'.unpack("H2",$1)/eg; と変更したものを記述してみたのですが、上手くいきませんでした。 具体的には&data[*]には住所が入ることになっており、この住所をURLエンコードして、地図リンク機能に使える状態で出力することがしたいと思っております。 CGI(Perl)については、Readmeに書いてあることぐらいしか、いじれないので御教授して頂ければ、大変助かります。 何卒、よろしくお願い致します。 では、失礼します。

関連するQ&A

  • 複数行URLエンコードができるCGIまたはTOOL(エディタなど)を探しています。

    よろしくお願い致します。 題名にもありますが、日本語文字列をURLエンコードできるTOOL、またはCGIはありませんでしょうか? JavaScriptでもOKです。 例) あいうえお→ %82%A0%82%A2%82%A4%82%A6%82%A8 東京都→ %93%8C%8B%9E%93s といった具合に変換したいのです。 参考のサイトしては、 http://www.geocities.co.jp/SilkRoad/4511/vb/urlenc.htm にある、 http://www.geocities.co.jp/SilkRoad/4511/vb/sample/vbsurlen.htm のような感じで、複数行を一括でURLエンコードできると良いです。 私はあるデータベースのサイトを運営しており、某地図サイトの地図リンク機能を付け加えようと思ったのですが、数千件のデータを扱っているので1つ1つ変換するのも膨大に時間がかかってしまうので、できればCGIやTOOLで一括に(データを複数に分割して変換しても良いですが)変換できたら良いなと思っています。 データベースの検索にはCGIROOMさんの所で配布されている、「検索専用データベースVer1.44」を使用しています。 (CGIROOM:http://cgiroom.nu/) 検索後の出力時に、URLエンコードを行う機能をつけれればベストなのですが、私の技量では付け加えれるだけの知識はありません。 もし簡単にこのような機能を付け加えることができるのであれば、御教授お願い致します。 いろいろとサイトやTOOLを探してみたのですが、URLデコードがはるかに多く(当然のことですが)見つけることはできませんでした。 今後、サイトをより便利に使いやすくするためにも、地図リンク機能を是非付加えたいと思っています。 長くなってしまいましたが、よろしくお願い致します。 (もしこちらで回答されるのに支障がありましたら、メールでの回答でも承ります。)

  • URLエンコードについて

    「 † 」 の文字をUTF-8 でURLエンコードした時の値が2種類あるんでしょうか。 以下の2つのURLエンコードした文字を %EF%BC%8D %E2%80%A0 URLエンコード/ デコードの結果を出力してくれる こちらのサイトと https://www.tagindex.com/tool/url.html こちらのサイト https://tech-unlimited.com/urlencode.html で結果が異なるみたいです。 なぜこういった結果が異なる状況が生まれるのでしょうか そして正しいのはどちらなのでしょうか

  • URLエンコードされたデータを戻すには

    POSTでCGIに渡す文字列はURLエンコードされていて、元に戻すにはデコードが必要ですが、もともとURLエンコードされたデータをデコードしたデータにできないでしょうか。 普通は、 読める文字→URLエンコード→CGIによる処理→URLデコード→読める文字 ですが、 もとのデータがURLエンコードされた状態だと、 URLエンコードされた文字→URLエンコード→CGIによるURLデコード→URLエンコードされた文字 となってしまいます。 たとえば、「%82%a0%82%a0%82%a0」というデータ形式から、「あああ」というデータを得たいのです。

  • URLエンコードの仕方

    こんにちは。 HTMLとJavaScriptで検索サイトチックなものと製作しています。 テキストボックスに入力さえたキーワードをJavaScriptにて「URLエンコード」してあるURLとくっつけて、location.hrefで表示ページを変えてしまうというような事を考えています。 一例としまして・・・ url = "http:/www.mapfan.com/index.cgi?ADDR="; key = (エンコード document.myForm.C_Comodity_Add_1.Value); url = url + key; location.href = url; というように考えています。 どのようにしてやればいいのでしょうか??

  • 複数行の文字列を一括してURLエンコードするには?

    こんにちは。 例) エンコード前 今日の天気 エンコード後(ECU-JP) %ba%a3%c6%fc%a4%ce%c5%b7%b5%a4 の様なURLにできる文字列に変換したいのですが、元となるデータが多数ありまして手作業で行うのが大変です。 EXCELで一括変換する方法や、その他一括変換できるようなソフトやサービスをご存じでしたら是非教えてください。

  • CGI.pmで日本語をURLエンコードするとおかしい

    CGI.pmで日本語をURLエンコードするとおかしくなります。 print($q->unescape($q->escape('あ')), "\n"); このコードは文字'あ'をURLエンコードしたものをURLデコードして表示するはずです。 すなわち'あ'と表示するはずです。 しかし実際には'a??'と表示されてしまいます・・・ 何か他の関数をかまさないといけないのでしょうか???

    • ベストアンサー
    • Perl
  • cgi検索結果の画面にアドレスバーのURLを表示させたいのですが・・

    下記のようなcgi検索結果の画面にアドレスバーのURLを表示させたいのですが、判る方、いらっしゃいますでしょうか。ベースはCGIROOMさんの検索専用データベース Ver2.10 sort(http://cgiroom.nu/list/database/database2s/)です。 <cgi検索結果の画面および↓表示させたいURL> http://cgiroom.nu/list/database/database2s/database.cgi?joinkeys1=&joinkeys1=&joinkeys1=&IDv005=&IDn005=keys2&IDn006=AND&template=006-005&value3=&select3=%81@&query=&sort=0&keys4=&IDv001=&IDn001=AND&word=0&print=50&INDEX=

    • ベストアンサー
    • CGI
  • フォーム送信とURLエンコードについて

    CGI&PHP初心者です。 フォームのデータ送信とURLエンコードについて、お尋ねします。 method="GET" のフォームで、検索フォームをつくりたいとおもっています。 日本語も含めた検索語をフォーム送信したいと考えていますが、 送信の結果、エンコードされずにそのままブラウザのURL欄に入力した日本語が表示されてしまいます。 (ただ、メモ帳などにURLをコピーペーストするとURLエンコードがされているようです。) googleでは検索結果のアドレス欄にURLエンコードされた文字列がでているが、 同じように検索結果のアドレス欄にはURLエンコードされた文字列をだしたい。 URLに日本語をださずにURLエンコードさせた文字列を表示させるには、 どうすればいいのでしょうか? 補足:できるかぎり検索処理が重くならないにしたいと思います。     開発環境PHP&MySQL     動作環境Chrome のバージョン 38.0

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

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

    • 締切済み
    • CGI
  • canonicalのURLエンコードについて

    ネットで無料配布されているAmigodatabaseというPerlで、データベースのサイトを作っております。 以下は、データベースの結果一覧を出力するための、default.htmlというページのソースの一部です。 print <<"<!---HTML--->"; <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML lang="ja"><HEAD> <link rel="canonical" href="$FORM{$SEARCH{1}{Name}}.htm"> (中略) <META name="description" content="$FORM{$SEARCH{1}{Name}} の名産果物です"> <TITLE>$FORM{$SEARCH{1}{Name}} の果物</TITLE> 上記、$FORM{$SEARCH{1}{Name}}には、 検索した際に使ったキーワードが表示自動挿入されます。 このキーワードが、例えば「りんご」だった場合に、 URLエンコードを行って、「%e3%82%8a%e3%82%93%e3%81%94」と 上記、<link rel="canonical" href="$FORM{$SEARCH{1}{Name}}">の $FORM{$SEARCH{1}{Name}}を、%e3%82%8a%e3%82%93%e3%81%94として、 つまり、<link rel="canonical" href="%e3%82%8a%e3%82%93%e3%81%94.htm"> としたいのですが、どのようなソースを書けば、実現できるのでしょうか? どうかアドバイスのほど、よろしくお願い致します。m(_ _)m