●URLエンコードの仕組み

「●URLエンコードの仕組み」の編集履歴(バックアップ)一覧はこちら

●URLエンコードの仕組み」(2012/02/07 (火) 07:40:23) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

*情報 作者名:Craving研究家 *[[ダウンロード>]] *概要  URLエンコードの仕組みです。 *サンプルプログラム 「Hello World! = 世界よ、こんにちは! <>"{}|\^[]`#%;/?:@&=+$,」をURLエンコードB それを表示 それをURLデコードB それを表示 *本体 ●URLエンコードB(Sを)  結果とは文字列;対象とは文字列  Iで1から(Sのバイト数)まで繰り返す   対象=MIDB(S,I,1)   もし、対象が「[^a-zA-Z0-9_\-\.]」に正規表現一致ならば    対象="%"&(ASC(対象)を10から16進数変換)   対象を結果に追加  結果=結果の「%20」を「+」に置換// 空白は"+"に置換  結果で戻る ●URLデコードB(Sを)  結果とは文字列  Iとは整数=1;対象とは文字列  S=Sの「+」を「%20」に置換// 空白に戻す  (I<=(Sのバイト数))の間   対象=MIDB(S,I,1)   もし、対象="%"ならば    対象=CHR(INT(「${MIDB(S,I+1,2)}」))    I=I+2   対象を結果に追加   I=I+1  結果で戻る #-------------------------- #進数変換(五十六さん作 ありがとうございます)改造 ここから #-------------------------- ●十進数(SをVで)  IでASC("a")からASC("z")まで繰り返す   S=SのCHR(I)をCHR(I+ASC("A")-ASC("a"))に置換  S=(Sを文字列分解)を配列逆順  IでASC("A")からASC("Z")まで繰り返す   S=SのCHR(I)を(I-ASC("A")+$A)に置換  結果とは整数  Sで反復   結果=結果+対象*(V^(回数-1))  結果で戻る ●進数(SをV|SのV|SでV)  結果とは配列;Cとは数値  (S>=V)の間   C=S%V   Iで10から35まで繰り返す    C=CのIをCHR(I+ASC(A)-$A)に単置換   結果にCを配列追加   S=INT(S/V)  Iで10から35まで繰り返す   S=SのIをCHR(I+ASC(A)-$A)に単置換  結果にSを配列追加  結果を配列逆順  (結果を空で配列結合)で戻る ●進数変換(Sを{=10}AからB)~(SをAで十進数)の(B)進数で戻る #-------------------------- # 進数変換ここまで #-------------------------- ---- 総合:&counter() 今日:&counter(today)人 昨日:&counter(yesterday)人 #comment() ----
*情報 作者名:Craving研究家 *[[ダウンロード>http://www26.atwiki.jp/isoroku_be/?cmd=upload&act=open&page=%E2%97%8FURL%E3%82%A8%E3%83%B3%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E4%BB%95%E7%B5%84%E3%81%BF&file=URL%E3%82%A8%E3%83%B3%E3%82%B3%E3%83%BC%E3%83%89.nako]] *概要  URLエンコードの仕組みです。 *サンプルプログラム 「Hello World! = 世界よ、こんにちは! <>"{}|\^[]`#%;/?:@&=+$,」をURLエンコードB それを表示 それをURLデコードB それを表示 *本体 ●URLエンコードB(Sを)  結果とは文字列;対象とは文字列  Iで1から(Sのバイト数)まで繰り返す   対象=MIDB(S,I,1)   もし、対象が「[^a-zA-Z0-9_\-\.]」に正規表現一致ならば    対象="%"&(ASC(対象)を10から16進数変換)   対象を結果に追加  結果=結果の「%20」を「+」に置換// 空白は"+"に置換  結果で戻る ●URLデコードB(Sを)  結果とは文字列  Iとは整数=1;対象とは文字列  S=Sの「+」を「%20」に置換// 空白に戻す  (I<=(Sのバイト数))の間   対象=MIDB(S,I,1)   もし、対象="%"ならば    対象=CHR(INT(「${MIDB(S,I+1,2)}」))    I=I+2   対象を結果に追加   I=I+1  結果で戻る #-------------------------- #進数変換(五十六さん作 ありがとうございます)改造 ここから #-------------------------- ●十進数(SをVで)  IでASC("a")からASC("z")まで繰り返す   S=SのCHR(I)をCHR(I+ASC("A")-ASC("a"))に置換  S=(Sを文字列分解)を配列逆順  IでASC("A")からASC("Z")まで繰り返す   S=SのCHR(I)を(I-ASC("A")+$A)に置換  結果とは整数  Sで反復   結果=結果+対象*(V^(回数-1))  結果で戻る ●進数(SをV|SのV|SでV)  結果とは配列;Cとは数値  (S>=V)の間   C=S%V   Iで10から35まで繰り返す    C=CのIをCHR(I+ASC(A)-$A)に単置換   結果にCを配列追加   S=INT(S/V)  Iで10から35まで繰り返す   S=SのIをCHR(I+ASC(A)-$A)に単置換  結果にSを配列追加  結果を配列逆順  (結果を空で配列結合)で戻る ●進数変換(Sを{=10}AからB)~(SをAで十進数)の(B)進数で戻る #-------------------------- # 進数変換ここまで #-------------------------- ---- 総合:&counter() 今日:&counter(today)人 昨日:&counter(yesterday)人 #comment() ----

表示オプション

横に並べて表示:
変化行の前後のみ表示:
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。