2011/01/16

秀丸マクロ URLエンコードを行うには?

 
秀丸エディタ V8.00 以降は、非常に強力なプラットフォームになってます。
 
完璧ではありませんが COM を利用したプログラミングも可能になり、やりたい
事はほぼ何でも出来る環境に近づいてますね。
 
v8.00 では VB の CreateObject に非常に似た関数が用意されました。
 
 
今回はこれを使って URLEncode と URLDecode を行う方法の紹介。
 
v8.00 以降、下記コードで UTF-8 のエンコードを行うことが出来ます。
 
[サンプルコード]  ・文字列 "ほげ" を URL エンコード
 
##obj = createobject("ScriptControl");
if( ##obj!=0 ){
    setpropstr ##obj, "Language", "JScript";
    ##js = getpropobj( ##obj, "CodeObject" );
    $$str = callmethod_returnstr(##js, "encodeURIComponent", "ほげ" ); 
     releaseobject ##obj;
    message $$str;
}
 
URL エンコードした文字列は $$str 変数に入ります。デコードする場合は、
以下のようにします。
 
 
[サンプルコード]  ・URLエンコード済み $$str  を URL デコード
 
$$str = callmethod_returnstr(##js, "decodeURIComponent", $$str);
 
 
簡単ですね。
 
一点、JavaScript と同じで SJIS でエンコードする方法は標準では無いため、
独自に実装するかライブラリを利用する必要があります。

0 件のコメント:

コメントを投稿