TextWrangler.appのスクリプト—テキストエンコーディングと改行コード変換

テキストファイルのエンコーディング(文字コード)と改行コードは、プラットフォームごとに異なっていて、うっかり異なった組み合わせで手渡すと不要なトラブルになることもあります。
ここでは、代表的な組み合わせをTextWrangler.app上でセットするためのスクリプトを紹介します。

■Shift_JIS/CR+LFの組み合わせ
Windows環境へテキストを渡す場合の最善の方法は、ユニコード(UTF-8)のままWindowsへ転送し、Windows上でユニコード(UTF-8)対応のエディタで開き、変換するというものですが、Mac上で変換をするとすればこの組み合わせの選択となります。
以前、ユニコード(UTF-8)のキャラクタセット指定でWebのサイト構築を依頼され、htmlファイル以下一式を納品したところ、クライアントの担当者から電話が入り、えらく怒鳴られたことがあります。宥めながら理由を聞くと、ノートパッドでindex.htmを開いたところ、たった1行しか画面表示しないとのことで、一体貴殿はどんな仕事をしたのかね、と詰られたことがあります(ブラウザでページを見てくれれば分かったはずなのですが…)。
Web担当者でありながら、テキストエンコーディングと改行コードについての知識がなかったようで、参りました。そりゃあ、数百行のデータが1行しか表示されなければ焦るでしょう。(笑

さて、スクリプト自体はシンプルです。

tell application "TextWrangler"
	activate
	set encoding of text document 1 to "Japanese (Windows, DOS)"
	set line breaks of text document 1 to DOS
end tell

■UTF-8/LFの組み合わせ
OS 9までは、テキスト処理は、通常Shift_JIS/CRの組み合わせでしたが、OS X環境では、これが一般的になりました。
古いMacからのデータを引っ張ってくる時には、この変換が必要となるでしょう。

tell application "TextWrangler"
	activate
	set encoding of text document 1 to "Unicode (UTF-8)"
	set line breaks of text document 1 to Unix
end tell

それぞれ、前面に開いているドキュメントへの処理となります。
TextWrangler.appではScriptsフォルダの中のスクリプトに、パレットメニューからScriptsを選択して表示されるパレットでキーボドショートカットを適用できるので、ショートカットを当てればキー一発で実行できます。
なお、現在のエンコーディングと改行コードをAppleScriptから得るのには、次のようにすれば値を取得できます。

tell application "TextWrangler"
	activate
	get encoding of text document 1
	get line breaks of text document 1
end tell

因に、TextWranglerで‘Japanese’として実装されているエンコーディングは図のように6種類あります。

2013-10-25 5.11.33

■補遺
参考までに、文字コード、Shift_JIS、改行コードについてのWikiページをリストアップしておきます。
<http://ja.wikipedia.org/wiki/%E6%96%87%E5%AD%97%E3%82%B3%E3%83%BC%E3%83%89>
<http://ja.wikipedia.org/wiki/Shift_JIS>
<http://ja.wikipedia.org/wiki/%E6%94%B9%E8%A1%8C%E3%82%B3%E3%83%BC%E3%83%89>

広告

コメントを残す

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

WordPress.com ロゴ

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

Twitter 画像

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

Facebook の写真

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

Google+ フォト

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

%s と連携中