FileMaker SHIFT_JIS でURLエンコード(Code:127以下は%エンコードしない)
FileMaker Pro 16.0以降
スクリプト:URLから挿入 で、Windowsの場合、プロトコル「file://」や「smb://」を使う場合、日本語(全角混じり)のパスではエラーになります。
以下の式でURLエンコードすればOK。
例:
入力:smb://192.168.100.180/共有/
出力:smb://192.168.100.180/%8B%A4%97%4C/
Let(
[
$Val = $arg ;
$MAX = Length ( $Val ) ;
$n = 1 ;
$fnc0=
"Case ( $n > $MAX ; $Result ;
Let(
[
$text=Middle ( $Val ; $n ; 1 );
$Result = $Result & if(Code ( $text )>127;
Let(
[
$txt = HexEncode ( TextEncode ( $text ; \"shift_jis\" ; 1 ) ) ;
$pos = Length ( $txt ) - 1 ;
$fnc=
\"Case ( $pos < 0 ; $txt ;
Let(
[
$txt = Replace ( $txt ; $pos ; 0 ; \\\"%\\\" ) ;
$pos = $pos - 2
];
Evaluate($fnc))
)\"
];
Evaluate($fnc)
)
;
Middle ( $Val ; $n ; 1 )
);
$n = $n + 1
];
Evaluate($fnc0))
)"
];
Evaluate($fnc0)
)
/*
%エンコード部分の再帰式は、Shinさんが書いたモノです。
https://fm-aid.com/bbs2/viewtopic.php?pid=50129#p50129
*/
0 件のコメント:
コメントを投稿