>晩御飯さん
ありがとうございます!
理想通りの処理が出来ました。
ただ、ひとつ問題が発生しました。
下記のスクリプトでうまく行くのですが、他の処理の都合でこのスクリプトに
>#include "hspda.as"
>#include "hspinet.as"
この二行を付け加えるとエラーが出てしまいます。
何がいけないのでしょうか?
#module modMultiLanguage2
#const global CODE_EUC_JP 51932
#const global CODE_SHIFT_JIS 932
#const global CODE_UTF_8 65001
#define IID_IMultiLanguage2 "{DCCFC164-2B38-11d2-B7EC-00C04F8F5D9A}"
#define CLSID_CMultiLanguage "{275c23e2-3747-11d0-9fea-00aa003f8646}"
#usecom IMultiLanguage2 IID_IMultiLanguage2 CLSID_CMultiLanguage
#comfunc MLangConvertString 9 var,int,int,var,var,var,var
#deffunc URLEncode var data
tmp = 0 : strTmp = ""
repeat
ret = peek(data, cnt) : if( ret == 0 ) : break
if( ret == '-' || ret == '.' || ret == '_' ) : ret = 0
if( '0' <= ret && ret <= '9' ) : ret = 0
if( ('A' <= ret && ret <= 'Z') || ('a' <= ret && ret <= 'z' ) ) : ret = 0
if( ret == 0 ){poke strTmp,tmp,ret}
else{if(ret == ' '){poke strTmp,tmp,'+'}else{strTmp+="%"+strf("%.2X",ret):tmp+=2}}
tmp++
loop
data = strTmp : strTmp = 0
return
#deffunc URLDecode var data
tmp = 0
repeat
ret = peek(data, tmp)
if( ret != '%' ){if(ret=='+'){poke data,cnt,' '}else{poke data,cnt,ret}}
else{poke data,cnt,int("$"+strmid(data, tmp + 1, 2)) : tmp += 2}
tmp++ : if( peek(data, tmp ) == 0 ) : poke data, cnt + 1, 0 : break
loop
return
#deffunc MLangConvert int srcCode,int dstCode,var src,var dst
newcom MLang, IMultiLanguage2
srcsize = -1 : sdim dst, strlen(src)*2 : dstsize = strlen(src)*2
MLangConvertString MLang, mode,srcCode,dstCode,src,srcsize,dst,dstsize
delcom MLang
return
#global
src = "晴れ"
// src から dst へ UTF-8 変換 ⇒ URLエンコード
MLangConvert CODE_SHIFT_JIS, CODE_UTF_8, src, dst
URLEncode dst : mes dst