人気ブログランキング | 話題のタグを見る
Leopard のテキストエディットで UTF-8
DTPについてレクチャーを請うべく、いろいろ準備して友人を訪ね、準備してきたUSBメモリを友人の Mac に挿し、準備してきたテキストファイル(クリエータは mi、通称ミミカキ)をダブルクリックすると・・・・・・開かない。もちろん、ふつうのMacに mi がインストールされていないことぐらいは僕だって知っている。が、ドックの「テキストエディット」アイコンにドラッグしても開かない。「このテキストファイルはMac OS X で作られたものではありません」だの「UTF-8 には対応してません」だののダイアログが出る。WEBサイトを作るようになって以来、僕は mi のデフォルトを UTF-8 にしているのだ。なんと、テキストエディットは UTF-8 に対応していないのか。なんだよそれ。拡張子「.txt」のプレーンテキストファイルが開けないパソコンって、いくらなんでもアホか。FUCK YOU。アップル死ね。

とりあえず、拡張子txtのファイルは Shift_JIS で保存することにしてみた。しかし。

経験を重ねるうちにいろいろわかってきた。「テキストエディットは UTF-8 に対応していない」というのは間違い。「開く」ダイアログからエンコーディングを指定すれば開ける。また、テキストエディットの環境設定で「標準テキストファイルのエンコーディング」を「開く場合」「保存する場合」それぞれ指定しておくことができる。テキストエディットの「標準テキストファイルのエンコーディング」はデフォルトでは「自動」になっている。ただし「自動」で UTF-8 を開くには、BOM(Byte Order Mark)付きであることが必須。BOM が何かは知らないが、mi のヘルプに
「UTF-8保存時にBOMを付ける」をOnにすると、テキストエンコーディングがUTF-8のファイルを保存するときに、BOM(Byte Order Mark)を付加して保存します。 具体的には、テキストファイルの頭にEF BB BFの3バイトが付加されます。
BOMとは、Unicodeのバイト順(Big Endian, Little Endian)を識別するためのものであり、本来の意味からすると UTF-8にはBOMは必要ないものなのですが、テキストエンコーディング識別等のために用いられることがあります。
ただ、コンパイラ等では、BOMを付加したテキストファイルを正常に読み込めない場合がありますので、 基本的にはOff推奨です。
とあるので、BOMの付加をオフにしていたのだ。しかしまあ「コンパイラ等では正常に読み込めない場合がある」ということだが、僕はコンパイラなんてものは使わないので、これをオンにしてみた。そしたらデフォルト状態のテキストエディットで「直接」開けるようになりました。

2009年3月18日 (水)
Leopardのテキストエディット.appの仕様メモ (改訂)

テキストエディット.appは、デフォルトではファイルを開く際に文字コードを自動で判別するようになってるが、Tiger以前のテキストエディット.appは、プレーンテキストファイル(.txt)を開こうとする際、文字コードがShift JISかBOM付きUTF-8でないと自動判別して「直接開く」ことができない(「直接開く」とは、ファイルアイコンのダブルクリックやアプリケーションアイコンへドラッグで開くことを意味する)。メニューバーの「ファイル」から「開く」ダイアログボックスを呼び出して文字コードを指定して開くのであれば問題なく開くことができる。(Tigerのテキストエディット.appはUTF-8で保存する際、BOMを付けないらしく、自分自身が作成したUTF-8のテキストが開けない)

だが、Leopardのテキストエディット.appではBOM無しUTF-8でもEUCでもJIS(ISO 2022-JP)でも「直接開く」ことができるようになった。但し、Leopard上でGUIアプリケーションで作成したファイルタイプ無しのプレーンテキストファイルに限られる。ファイルタイプのついているもの、Leopardのコマンドラインプログラム(vi、nanoなど)で作成したもの、TigerやWindowsやLinuxで作成したものはBOM付きUTF-8かShift JISでないと自動判別では開くことができない。

※ここでいうShift JISには「Mac OS」や「CP932」を含む。
と思ったら、この記事によると「10.5以降ならファイルタイプが設定されてなければBOMなしでも自動で開ける」みたい。やってみたらたしかにどうやらその通りっぽい。どうもmi はタイプコードもクリエータコードも設定しないらしい。この点は自信ないので、違ってたらごめんなさいねー。
by nobiox | 2010-10-27 23:27 | ├Mac OS X |
<< JavaScript と SS... | 「Sand In My Joi... >>