«data utxt16進数»

引数(Parameters)

16進数データの中身を示す16進数

演算子(Operators)

as, & (結合), = (等しい), /= (等しくない)

属性(Properties)

classクラス識別子[r/o]
値の属するクラス(当然Unicode textと思いきやtextが返る)
length整数[r/o]
含まれる文字数(numberと同じ)
number整数[r/o]
含まれる文字数(lengthと同じ)
quoted form文字列[r/o]
文字列の前後をクォート「'」でくくったもの
(Mac OS X 10.2以降)
id整数 | 整数リスト[r/o]
文字コード(Mac OS X 10.5以降)

解説(Note)

 ユニコードによる文字列を扱うために、用意されたクラス。

 AppleScript2.0、OSのバージョンとしては10.5以降は、文字列は基本的にユニコードで扱われるようになり、stringクラスと同じ扱いとなった。
 そのため、あえてこのクラスを使う必要はなくなった。

過去の情報

 一応、文字列(string)との相互変換はできるようになっているが、従来の文字列と入れ替えて使うことは、完全にはできない。
 例えばUnicode textはcount命令を受け付けないし、演算子もデータクラスに使えるもの以外は使えないし、要素も文字列が使用できるものがユニコードではつかえない。

 Mac OS Xになってからは多少状況が変わり、count命令も受け付けるし、演算子もstringクラスに利用できるものは大抵大丈夫になっている。
 とは言え、まだまだ中途半端というか謎っぽい仕様が多い。

 Mac OS Xになってからは、International text(国際文字列)の置き換えとして利用される事が多いが、もう一つ使い分けがハッキリしていない。
 このため、Mac OS Xで文字列データの受け渡しが失敗した時は、とりあえずas Unicode textやas stringを使ったキャスティング(データクラスの変換)を試して、それで回避するという付け焼き刃的な対処が必要。

 なお、write命令でファイルに書き込んだ場合、エンコードはUTF-16で書き込まれる。

【バグ情報】

 2バイト文字をユニコードへ変換できていない。
 MacOS9.1以降は、変換は上手くいく。結果ウィンドウにも文字列の形で表示される。
 MacOS9.1では、例1はUnicode textではなくcurrent applicationが返ってくるし、例2はエラーとなる。また、文字列と&演算子で結合しようとすると、「メモリが足りません」というエラーとなる。
 MacOS9.1から正式にサポートしたことになっているものの、まったく使い物にならない。
 結局、旧Mac OSではunicodeは使い物にならないまま放り出されてしまったようだ。

用例(Example)

  1. class of ("text data" as Unicode text)
  2. set x to ("漢字な感じ" as Unicode text)
    display dialog x
※1 結果ウィンドウでResultを見て下さい。