REALbasicでURLデコードを試みたが失敗したのでPerlに頼ることに
さっきのURLデコードネタ。
最初はREALbasicの関数でなんとかしようと思ったけど、%xxっていうのを普通の文字列に変換する段階でパニックになったので中止。
じゃあREALbasicに組み込めるAppleScriptでなんとかすることはできないかと思ってググったりしていたら
URL_Decode
http://www.vector.co.jp/soft/mac/net/se398544.html
AppleScriptでURLデコードするスクリプトがあったので、これでなんとかなるかもとか思って分解してみたら
中でPerlスクリプトを実行するような仕掛けになっていた。
どうやらAppleScript単体でもURLエンコード(URLエスケープ)をなんとかする方法はないらしい
Perlは文字列操作に関して優秀な言語だとか過去に耳にした記憶がある。ようするに終着点は多分Perl
REALbasicからMac OS Xのシェルを呼び出してAppleScriptで言うdo shell script的なことをすれば結果が容易に得られると思うので好都合
かといって、その上記のAppleScriptをそのまんまパクるのもあれなので、自力でなんとかスクリプトを組もうと試みるが、またしても頭がやられる
なんかもう意味不明
死にたい
とか思いながら、数時間、断片的な情報をかき集めて、こんなかんじで仕上げた
$str = "%E7%94%B7";
$str =~ tr/+/ /;
$str =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack('H2', $1)/eg;
print($str);
%E7%94%B7 は 男 をURLエンコードしたものだ。
なんで「男」なのかと言えば、ググってる最中でどこかのサイトが「男」という文字列を使って解説していたからだ
実際にREALbasicに組み込むときは、その部分を変数にしてやって、REALbasicのプログラムから文字列を渡せるようにしようと考えている
さっきのをテキストエディットで保存してa.plとして保存
ターミナルを立ち上げてperl a.pl的なことをしたらできた。あとはこれをファイルに保存せずにできれば完璧なのだが。どうすればいい
perl -e コマンド
みたいな感じだとさっきみたいな複数行のスクリプトは実行できないぞ
HELP!