TextWrangler.appのスクリプト—encodeURI.scptとdecodeURI.scpt

TextWrangler.appのドキュメント内の選択範囲の文字列をURIエンコーディングするスクリプトと、その反対でデコードするスクリプトです。
選択された文字列を対象に動作します。

■encodeURI.scpt

tell application "TextWrangler"
	activate
	if (selection of text window 1 as string) is not "" then
		set selection of text window 1 to my encodeURI(selection of text window 1 as Unicode text)
	else
		display notification "文字列を選択してから実行しましょう。" with title "Notification" -- subtitle "" sound name "Frog"
		(*
		activate
		display dialog "文字列を選択してから実行しましょう。" buttons {"OK"} default button "OK" with icon note giving up after 3
		*)
	end if
end tell

to encodeURI(theString)
	do shell script "echo " & quoted form of theString & " | tr -d '\\n' | perl -pe 's/([^\\w ])/\"%\".unpack(\"H2\", $1)/eg;'"
end encodeURI

■decodeURI.scpt

tell application "TextWrangler"
	activate
	if (selection of text window 1 as string) is not "" then
		set selection of text window 1 to my decodeURI(selection of text window 1 as Unicode text)
	else
		display notification "文字列を選択してから実行しましょう。" with title "Notification" -- subtitle "" sound name "Frog"
		(*
		activate
		display dialog "文字列を選択してから実行しましょう。" buttons {"OK"} default button "OK" with icon note giving up after 3
		*)
	end if
end tell

to decodeURI(enc_String)
	do shell script "echo " & quoted form of enc_String & " | tr -d '\\n' | perl -pe 's/%([0-9A-Fa-f][0-9A-Fa-f])/pack(\"H2\",$1)/eg;'"
end decodeURI

■補足

OS X 10.9 Mavericksから‘display notification’で通知センターの通知パネルを呼び出せるようになったので、試しに組み込んでいますが、不都合であれば、「(*」と「*)」で囲まれたコメントアウト部分の‘display dialog’と入れ替えて下さい。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中