本ブログの更新は停止しています。更新は新しいサイトの Travellers Tales で行なっています。
文字コードを変換する正確には AppleScript
ネタではなくて、シェルの
iconv
というコマンドに関することなのですが、AppleScript
で文字コードを変換するには、いちばん楽な方法ではないかな?
iconv
はシェルのコマンドで、テキストのエンコーディングを変換するものです。このコマンドの偉いところは、日本語はのみならず、Unicode
から中国語、韓国語をはじめとする各国語をカバーしているところです。文法は以下の通り。
iconv -f 元のエンコーディング -t 変換したいエンコーディング 入力ファイル このコマンドを使って UTF-8 で取得したファイル名やフォルダ名を変換しようと思ったのですが、最初はうまくいきませんでした。 例えば、デスクトップ上のファイル/フォルダ名を取得して、result.txt というファイルに書き出す以下のようなスクリプトです。 do shell script "ls $HOME/Desktop/ | iconv -f UTF-8 -t SHIFT-JIS > $HOME/Desktop/result.txt" 実は、これは、UTF-8 を
UTF-8-MAC
に変えてやれば動きます。
いろいろ試した結果、ここで
ls が吐き出している UTF-8
が素直に変換できないのは、吐き出される
Unicode が Decomposed form
になっているためだとわかりました。HFS+
は仕様上、日本語の濁点付き仮名などは
Decomposed form
で記録されます。従って
ls の結果には Decomosed form
が含まれるため、iconv
で変換する場合、ただの
UTF-8
と指定したのではダメで、UTF-8-MAC
としてやらなければダメなようです。UTF-8
と UTF-8-MAC
の違いが他にもあるのかわからないのですが、とりあえず
iconv での Decomposed した Unicode
の変換には、UTF-8-MAC
と覚えておきましょう。
UTF-8-MAC であれば、Decomposed
してない Unicode
もきちんと変換できるので、UTF-8
と UTF-8-MAC
を分けないで、UTF-8-MAC を UTF-8
にすればよいのに、と思うのは素人考えなのでしょうか。Decomposed
Unicode 自体は、Unicode の Normalization
Form
として定められているものなので、特に
Mac
だけのものというわけではないでしょうし。
ちなみに iconv -lとやると、利用可能なエンコーディングがすべて表示されます。 Decomposed Unicode に関する参考リンク: Posted: 土 - 7月 3, 2004 at 01:47 AM |
Quick Links
Categories
Google Search
Donation
Track Word
Ranking Navi
track feed
Archives
About This Blog
親サイトの Travellers Inn は旅に関するサイトですが、ここ Travellers Tale では、旅にこだわらず興味のおもむいたことについて書いています。ちなみに Travellers Tale という言葉は、旅行記ではなく、旅人の見てきたようなほら話のことを意味しています。
筆者ハンドル:Hiro (ハンドルネームという言い方は正確には間違いですよ!慣用化しているので、こだわる必要はないかもしれませんが。) Trackback powered by
FeedCount
XML/RSS Feed
Statistics
Total entries in this blog:
Total entries in this category: Published On: 6月 10, 2012 12:55 AM |