スポンサーサイト

Tags :
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Webで利用される様々な文字列エンコードを扱うためのAppleScriptいろいろ

最近部品ばっかり。

前のエントリとかで文字参照を戻すスクリプトなんかをPython使って書いたりしましたが、PHP使えば遥かにシンプルに出来るので、Webで使われてる色々な文字列のエンコードに対応したAppleScriptをまとめました。ユニコード文字列専用なので、スクレイピング等でWebから取得した文字列は、適宜do shell scriptで『iconv -f EUC-JP -t UTF-8』に通すなどして文字コードをutf-8に変換してから処理してください。

あと、変換の精度はPHPに依存してるのであらかじめご了承ください。

変換できるのは、
・『Base64』
・『実体参照・数値文字参照』
・『URLエンコード』
のそれぞれエンコードとデコードです。

(*
Base64でエンコードする
"123ABCあいう&<>" => "MTIzQUJD44GC44GE44GGJjw+"
*)
on encodeBase64(str)
    set scpt to "php -r 'echo base64_encode(\"" & str & "\");'"
    return do shell script scpt
end encodeBase64



(*
Base64をデコードする
"MTIzQUJD44GC44GE44GGJjw+" => "123ABCあいう&<>"
*)
on decodeBase64(str)
    set scpt to "php -r 'echo base64_decode(\"" & str & "\");'"
    return do shell script scpt
end decodeBase64



(*
文字列を数値文字参照に変換する
"123ABC あいう&<>" => "&#49;&#50;&#51;&#65;&#66;&#67;&#12354;&#12356;&#12358;&#38;&#60;&#62;"
&や<>等の記号も&38;等の数値文字参照に変換
*)
on encodeNCR(str)
    set scpt to "php -r 'echo mb_encode_numericentity(\"" & str & "\", array(0x0, 0x10000, 0, 0xfffff), \"utf-8\");'"
    return do shell script scpt
end encodeNCR



(*
実体参照・数値文字参照を文字列に戻す
"&#49;&#50;&#51;&#65;&#66;&#67;&#12354;&#12356;&#12358;&amp;&lt;&gt;" => "123ABCあいう&<>"
*)
on decodeNCR(str)
    set scpt to "php -r 'echo html_entity_decode(mb_decode_numericentity(\"" & str & "\", array(0x0, 0x10000, 0, 0xfffff), \"utf-8\"));'"
    return do shell script scpt
end decodeNCR



(*
文字列をURLエンコードする
"123ABCあいう&<>" => "123ABC%E3%81%82%E3%81%84%E3%81%86%26%3C%3E"
*)
on encodeURL(str)
    set scpt to "php -r 'echo urlencode(\"" & str & "\");'"
    return do shell script scpt
end encodeURL



(*
URLエンコードされた文字列を元に戻す
"123ABC%E3%81%82%E3%81%84%E3%81%86%26%3C%3E" =>  "123ABCあいう&<>" 
*)
on decodeURL(str)
    set scpt to "php -r 'echo urldecode(\"" & str & "\");'"
    return do shell script scpt
end decodeURL
スポンサーサイト
Profile
choco
Author : choco

印刷・製版の現場を経て、広告制作会社でPhotoshopを使ったビジュアル制作を担当。

→現在は車載機器開発ベンダにて、組み込み3Dデータ作成やUIデザインなどを行っています。

Categories
Favorites


Search
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。