[三流君] −−> [ASPで遊ぶ、失敗する] −−> [バックナンバー一覧]
−−> No.078 Server.URLEnCodeで文字列をエンコードする

Server.URLEnCodeで文字列をエンコードする



本文(発行内容)


<Server.URLEnCodeで文字列をエンコードする>

こんにちは、三流プログラマーのKen3です。 今回は、 あまり使わないんだけど、 文字列のエンコードの関数を使ってみます。

/* * 1.今回のキッカケ */

よく使っている、検索サービスなどで、 三流君を検索すると、 http://websearch.yahoo.co.jp/bin/query?p=%bb%b0%ce%ae%b7%af なんて、 %XXと漢字などが(+や%スペースなども) エンコードされてURLに乗せて、パラメータを渡している、 そんな場面を見かけると思います。 <FORM ACTION="test061-1.asp" METHOD="GET"> 調査したい文字列を入力してください。<br> <INPUT TYPE="text" SIZE="30" NAME="DATA" VALUE="<%=CHK_DATA%>"> <INPUT TYPE="submit" VALUE="コード調査開始"><br> ↑いろいろと遊んでみてください↑ </FORM> なんて感じで、HTMLのフォームからGET指定で渡すと、 URL付でtest061-1.aspが呼ばれますよね。 -- 枠外・余談 -- ホントのキッカケは、 http://www.ken3.org/etc/sake.html 日本酒・焼酎の販売で、楽天に飛ばす商品検索のボタンを作りたくて 調べてました。(パラメータとして、商品名を渡したくて)

/* * 2.簡単なサンプル */

フォームから受け取った値を、 Server.URLEnCodeを使い、エンコードして表示するサンプルを作ってみます。 <FORM ACTION="test078-1.asp" METHOD="POST"> 調査したい文字列を入力してください。<br> <INPUT TYPE="text" SIZE="30" NAME="DATA" VALUE="<%=CHK_DATA%>"> <INPUT TYPE="submit" VALUE="Server.URLEnCode 開始"><br> ↑いろいろと遊んでみてください↑ </FORM> と、FORMでPOSTでデータを送り、 CHK_DATA = Request.Form("DATA") 'パラメータの代入 なんて感じで、データを受け取って、 データありの時、 '長さをチェックする If Len(CHK_DATA) <> 0 Then '文字が入っていたら Response.Write "受け取ったデータは[" Response.Write Server.HTMLEncode(CHK_DATA) & "]です<br>" '*エンコードした結果を表示する Response.Write "Server.URLEnCodeでエンコードした結果は、<BR>[<b>" Response.Write Server.URLEnCode(CHK_DATA) & "</b>]です<BR>" & vbCRLF End If 単純に、 Server.URLEnCode(CHK_DATA) と変換して、画面に表示してます。 http://www.ken3.org/cgi-bin/test/test078-1.asp でテスト可能なので、いろいろと遊んでみてください。 test078-1.asp ソース↓ <%@LANGUAGE=VBScript%> <html> <head> <title>Server.URLEnCodeを使い、エンコードして表示する</title> </head> <body> <h1>Server.URLEnCodeを使い、エンコードして表示する</h1> <!-- Ken3 --><!-- #include file="info.inc" --> <br> Server.URLEnCode(文字列)でエンコードしただけです(笑)<br> ※詳細は、ソースと詳細解説のページを見てください。<br> <hr> <% CHK_DATA = Request.Form("DATA") 'パラメータの代入 '長さをチェックする If Len(CHK_DATA) <> 0 Then '文字が入っていたら Response.Write "受け取ったデータは[" Response.Write Server.HTMLEncode(CHK_DATA) & "]です<br>" '*エンコードした結果を表示する Response.Write "Server.URLEnCodeでエンコードした結果は、<BR>[<b>" & vbCRLF Response.Write Server.URLEnCode(CHK_DATA) & "</b>]です<BR>" & vbCRLF End If %> <HR> <FORM ACTION="test078-1.asp" METHOD="POST"> 調査したい文字列を入力してください。<br> <INPUT TYPE="text" SIZE="30" NAME="DATA" VALUE="<%=CHK_DATA%>"> <INPUT TYPE="submit" VALUE="Server.URLEnCode 開始"><br> ↑いろいろと遊んでみてください↑ </FORM> <br> </body> </html>

/* * 3.パラメータ付で検索画面を呼んでみる */

なかなか、良いサンプル思いつかなかったのですが、 Server.URLEnCode ^^^^^^^^^^^^^^^^^ のサンプルを他店や本で見ると、やはり、yahooやGoogleの検索が多いので、 キーワードが入力されたら、 左にGoogle,右にMSNの検索結果を表示してみたいと思います。 ※yahooとGoogleの検索結果はほぼ一緒なので・・・ HTMLのフレームって、なんか検索関係に嫌われていると噂があるので、 最近、みかけなくなってきました。 ※なんて言っている私も、フレーム廃止してますが。 昔私が使っていたフレーム処理だと、 バックナンバーで上に目次のタイトル・内容、 下に飛べるように目次のショートカットなんて処理を書いてました。 http://www.ken3.org/asp/backno-asp.html ←バックナンバーのページ のソース↓ <html> <HEAD> <TITLE>三流君 ASPで遊ぶ、失敗する</TITLE> <META NAME="keyword" content="プログラミング, ASP, VBScript, IIS, HTML"> <META NAME="discription" content="ASPのサンプル、失敗談など"> </HEAD> <frameset rows="*,60" FRAMEBORDER=1 BORDER=1 FRAMESPACING=0> <frame SRC="http://www.ken3.org/backno/backno_asp_mokuji.html" NAME="F_RIGHT"> <frame SRC="http://www.ken3.org/cgi-bin/bmenu/backno_asp_menu.asp" NAME="F_BMENU"> </frameset> </html> こんな感じで、フレームの分割をしてました。 <frameset rows="*,60" FRAMEBORDER=1 BORDER=1 FRAMESPACING=0> これは、上下分割なので、 今回、左右で半分半分の分割にしたいので、 <frameset cols="50%,50%" FRAMEBORDER=1 BORDER=1 FRAMESPACING=0> にして、フレームのソースを <frame SRC="グーグルのURL?Q=XXXX" NAME="f_google"> <frame SRC="MSNのURL?Q=XXX" NAME="f_MSN"> としてみます。 三流君[%8EO%97%AC%8CN]を検索する場合 http://www.google.com/search?hl=ja&ie=Shift_JIS&q=%8EO%97%AC%8CNhttp://search.msn.co.jp/results.asp?CY=ja&cp=932&q=%8EO%97%AC%8CN のパラメータで検索してみます。 処理のポイントは、特に無く(笑) Server.URLEnCodeで、エンコードした検索用のキーワードを渡しています。 http://www.ken3.org/cgi-bin/test/test078-2.asp でテスト可能なので、 右にGoogle、左にYahooの検索で、遊んでみてください。 ※なんか、違和感あるけど。 <%@LANGUAGE=VBScript%> <html> <% CHK_DATA = Request.Form("keyword") 'パラメータの代入 '長さをチェックする If Len(CHK_DATA) <> 0 Then '文字が入っていたら strQ = Server.URLEnCode(CHK_DATA) '検索文字列をエンコードする 'フレームを作成する Response.Write "<frameset cols='50%,50%' FRAMEBORDER=1 BORDER=1>" Response.Write vbCRLF '改行を出力 '左のフレームはGoogle Response.Write "<frame SRC='" Response.Write "http://www.google.com/search?hl=ja&ie=Shift_JIS&" Response.Write "q=" & strQ Response.Write "' NAME='f_google'>" Response.Write vbCRLF '改行を出力 '右のフレームはMSN Response.Write "<frame SRC='" Response.Write "http://search.msn.co.jp/results.asp?CY=ja&cp=932&" Response.Write "q=" & strQ Response.Write "' NAME='f_MSN'>" Response.Write vbCRLF '改行を出力 'フレームを閉じる Response.Write "</frameset>" Else '↓入力用のフォームを表示する(Keyワードが未入力の時) %> <head> <title>Server.URLEnCodeを使い、検索パラメータを作る</title> </head> <body> <br> <h1>Server.URLEnCodeを使い、検索パラメータを作る</h1> <HR> 好きなキーワードを入れて、検索開始ボタンを押してください<br> <FORM ACTION="test078-2.asp" METHOD="POST"> 検索したいキーワードを入力してください。<br> <INPUT TYPE="text" SIZE="30" NAME="keyword" VALUE="<%=CHK_DATA%>"> <INPUT TYPE="submit" VALUE="検索開始"><br> ↑いろいろと遊んでみてください↑ </FORM> <br> <!-- Ken3 --><% Call OUT_SRC("Server.URLEnCode") 'ソースの表示関数を呼ぶ %> <!-- Ken3 --><!-- #include file="inc_mokuji.inc" --> </body> <% End If %> </html>

/* * 4.終わりの挨拶 </HTML> */

今回は、 Server.URLEnCode を使って、エンコードしたパラメータを作成してみました。 右にGoogle、左にYahooの違和感ある検索で、遊んでみてください。 http://www.ken3.org/cgi-bin/test/test078-2.asp で検索テストできます。 もっと違う使い方、あるとは思いますが、一例だと思ってください。 何かの参考となれば幸いです。 ASP、VBScript勉強中の三流プログラマーのKen3でした。


ページフッター

ここまで、読んでいただきどうもです。目的の情報が見つかったか?少々心配しつつ、、、

三流君へ メッセージを送る

感想や質問・要望・苦情など 三流君へメッセージを送る。
返信例 XXXXさんへ
下記のフォームからメッセージを送ることができます。


あなたのお名前(ニックネーム):さん
返信は?:

アドレス:に返事をもらいたい
感想や質問↓:


(感想や質問・要望・苦情はHPで記事に載せることがあります。)

種類別のリンク や 広告など

[三流君(TOP ken3.org へ戻る)] / [ASPで遊ぶ、失敗する] / [ASP記事 バックナンバー目次]


Blogとリンク:[三流君のMemo別館]/ [ASP 三流君のソースコード置き場]/ [Ken3Video YouTubeで動画解説]
広告:

気になった ジャンル ↓を選択してください。

まぁ、基本はデータの受け取りかなぁ。
・[Form等を使用したデータのやり取り]・・・ASPと言っても、HTMLの入力フォームからデータを受け取ります。POSTやGETでやりとりを押さえますか。

次は、データの入出力 で ADOを使った(ADOで接続) と SQLの解説を少々
・[ADOでMdbファイルを使う]・・・MDBと接続して、簡単な追加・更新・削除を行った。
・[ADOでExcelと接続してみた]・・・.xlsと接続してSQLを使ってみた。
・[ADOでCSVと接続してみた]・・・.CSV テキストを読み出した。※更新・削除はできません

広告:



DBが使えるので、あまり使用しないけど、普通のテキストファイル処理
・[テキストファイル処理]・・・ファイルを開いて、書き込む。1行読み込みなどを軽く

VBScriptでFormat関数が無いなど、微妙にVBAと違うけど
[VBScript関数関係の説明]・・・少し、処理を書いてみた。
[その他処理サンプル]・・・あまり良いサンプル作れなかったけど。。。
何かの参考となれば幸いです。



[三流君(TOP ken3.org へ戻る)] / [ASPで遊ぶ、失敗する] / [ASP記事 バックナンバー目次]


広告: