TextExpander

URLエンコーディングするTextExpanderスニペット

モブログ環境構築にやっと取り掛かり始めた @azur256 です。便利なモブログ環境を作ろうと思うとほぼ確実に URL スキームを利用したアプリケーション連携を使うことになり、その時に渡すパラメータには URL エンコードが必要になります。
この URL エンコードを手元で簡単にできるように AppleScript を併用して TextExpander のスニペットにしてみました。


「TextExpanderの使い方」という書き下ろしエントリを書きましたので、よろしかったらご覧ください。⇒ 「TextExpanderの使い方」を公開しました



<追記>
このスニペットは Mac 版の TextExpander のみで動きます。
iPhone/iPad の TextExpander では動作しませんので、ご注意ください。
としやさん (@toshiya240) 、ご指摘ありがとうございました。
</追記>

URLEncode


URL エンコードって?


Wikipedia には

パーセントエンコーディング(英: Percent-Encoding)とは、URIにおいて使用できない文字を使う際に行われるエンコード(一種のエスケープ)の名称である。RFC3986のSection 2.1で定義されている。一般にURLエンコードとも称される。

via: パーセントエンコーディング – Wikipedia
http://ja.wikipedia.org/wiki/パーセントエンコーディング


と書いてあります。

難しいことを端折るために、正確性には欠きますがざっくり言うと、URL に使えない文字を %xx という文字に変換する方法です。この変換をエンコードとかエスケープとか符号化と言ったりするわけです。
この変換には文字一つ一つに割り当てられているコード(文字コード)を使うのですが、日本語についてはこのコード体系が何種類もあるので、利用する環境によってコード体系が違ったりしてうまく動かないことが多々有ります。
そこで、今回は日本語部分に関しては無視して、アルファベット(ASCII範囲)のみの対応とします。

何をしたら良いのか

先ほども書いたように、URLに使えない文字を符号化すれば良いのです。
URLに使っていい文字というのは “*”, “-“, “.”, “_” と 0−9、a-z、A-Z の文字のみ(実際にはもう少し揺れがあるのですが)。したがって、これらの文字はそのままに、それ以外の文字については %xx という出力をするようにします。ここで xx の部分は、その文字の文字コードを 16 進数で表現します。
ここまでを AppleScript で書いて TextExpander から呼び出したいと思います。

スニペットはこんな内容


いきなりですが、スニペットコードを以下に書きます。Content を AppleScript にして以下のコードを書いてください。

ココ にも置いておきますので、TextExpander のファイルメニューにある “Add Group from URL” に “http://azur256.com/data/URLEncode.textexpander” を指定することで登録できます。



URL エンコードしたい文字列をクリップボードに入れて、このスニペットを呼び出すと URL エンコードされた文字列が出力されます。

ちょっとだけコードを解説

urlEncode が与えられた文字列を url エンコードをする関数です。”*”,”-“,”.”,”_” という文字と一致するかを判定して処理を分けています。最初に半角スペース(32)かどうかを判断するコードが入っています。
URLエンコードの種類によっては 半角スペース を “+” プラス記号 に変換する必要があります。最初はプラス記号に変換するコードで書いていたのですが、 iPhone の URL スキームは %20 に変換するパーセントエンコーディングで良いようです。

AppleScript で取り出す文字コードは 10 進数なので、これを 16 進数に変換する関数が dec2Hex という関数(この関数はずっと昔にどこかで教えてもらった関数で自作ではないです)。

関連するエントリ

TextExpander のエントリもだいぶ増えてきました。そろそろまとめた方が良さそうな気がしていますが、時間も掛かりそうついつい後回しに(笑)

関連するエントリ














最後まで読んでいただきありがとうございます。

follow us in feedly 左のアイコンをクリックして、このブログを Feedly に登録していただけると嬉しいです


Facebook ページでも情報を発信していますのでよろしかったら「いいね!」をお願いします

RSSリーダへの登録は こちら からどうぞ。

URL
TBURL

コメントを残す

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

フェイスブックでのコメント

Return Top