Satimage 戻る| 次へ
ユニコードとAppleScript
ホームページ > 情報センター > Onlineドキュメンテーション >オートメーションの環境 > Text、ユニコードレッジ(exp)、XML > ユニコード、およびAppleScript ツ?/長さ>
目次
短い序論と参照 最初に戻る
ユニコードConsortiumのウェブサイトのユニコードに関するプレゼンテーションページは以下から始まります。
ユニコードStandardはコンピュータ処理のためのテキストの表現に使用される規格をコード化する普遍的なキャラクタです。
どんな種類の詳しい情報に関してはも、 ユニコードConsortiumのサイトを見てください。

ユニコードストリングは実際にはどんな既存のキャラクタも含むことができます。 あなたがMacOSXを使用しているなら、あなたのマシンはユニコード対応します: あなたは、ユニコードテキストに見て、入って、格納して、使用することができます。 ここで、私たちは簡潔にユニコードに関連するスクリプト用の問題に焦点を合わせます。

AppleScript変数はどうテキストを格納するか。 最初に戻る
AppleScriptは2つの可能なデータ型を仮定するかもしれない変数にテキストを格納します: ストリングユニコードテキスト
  • ストリングのクラスは基本的に1バイトを格納します。[0、1キャラクタあたり.255)。 ASCII規格、例えば、 37のASCIIキャラクタに従って最初に、値がされる128はパーセント記号 %です。 128のより大きい値が macintoshコード化を使用することでレンダリングされます、母国語があなたの国際好みの枠に記載されている状態で行くもの。 これはほとんどの米国の、そして、西洋のヨーロッパ人のユーザにとっての、MacRomanになるでしょう、そして、例えば、彼らに関して、 150のASCIIキャラクタnです。 私たちはこのコード化についてMacコード化に言及します。 ケースが ストリングが、より複雑な実体を格納するかもしれないところにあって、私たちはここにそれらを記述しません。
    いくらかのMac encodings(例えば、MacJapanese)が下側のASCIIにおいてさえ異なっているかもしれません。
  • UTF-16コード化を使用して、 ユニコードテキストのクラスは1キャラクタあたり2バイト以上を格納します。 ユニコードテキスト変数はどんなユニコードストリングも含むことができます。 スクリプターのための問題はAppleScriptが原始プログラムをコンパイルするとき、テキストがMacによってコード化されていると仮定するということです: したがって、私たちは直接非欧文をスクリプトによるストリングに入力することができません。 しかしながら、AppleScript変数は、 ユニコードテキストを格納して、通過することができます。
AppleScriptはファイルの中にどうテキストを格納するか。 最初に戻る
ファイルはさまざまな形式の下でテキストを格納することができて、私たちはそれらの4つに焦点を合わせます: ISO8859-1(「PC」形式)、Macコード化、UTF-8、およびUTF-16。
  • ISO8859-1を/からSmileでのMacコード化に翻訳することができて、メニューとスクリプトで、私たちはここにこの形式を記述しません。
  • Macでコード化されたファイルは範囲0に1キャラクタあたり1バイトを格納します。255 上で説明されるように。
  • UTF-8はユニコードを格納する方法です。 UTF-8ファイルは1バイト以上として各キャラクタを格納します。 (厳しい)のASCIIセットの128のキャラクタがUTF-8でそういうものとしてコード化されます、7ビットのASCIIキャラクタだけを含むファイルが同時にUTF-8ファイルと、Macでコード化されたファイルとISO8859-1ファイルであり1バイトとして。
    何らかのソフトウェアが任意の3バイトのヘッダー(hexa EF BB BF)をUTF-8ファイルに供給するのに注意してください。 Smileはそのヘッダーを保存するでしょう。
  • UTF-16はユニコードを格納する別の方法です。 UTF-16ファイルは2バイト以上として各キャラクタを格納します。 その上、ファイルは2で当時バイト254 255(hexa: FE FF)を始めます。(255はogonekとcaronとしてそれぞれ表示します)。 したがって、ユニコード意識しているエディタはUTF-8ファイルからUTF-16を自動的に検出するでしょう。
    FE FFヘッダーはBOM(バイトOrderマーク)と呼ばれます: 低いエンディアンシステムは代わりにFF FEに書きます。 すべてのユニコード意識しているソフトウェアが透明に大きいエンディアンファイルと同様に低いエンディアンを受け入れるでしょう。
AppleScriptは3つの後者の形式を読み書きします。 Macでコード化されたファイルから読むために、使用は みました。 以下の例では、私たちは2つのキャラクタに書きます: #当時の私たちがそれらを読み込む(一時的)のファイルの中の%
-- 例を走らせるつもりであるなら、AppleScript端末できっぱり以下の背の低い操作者をコンパイルしてください:
TempFileに関して()
ツ????" (ユーザドメインから「派遣社員として働く」経路)と「utf_Smile_ファイル」
終わりのTempFile

TempFileにfを設定してください。()
アクセスファイルfのために開くセットnは許可を書きます。
nへの「」 #%を書いてください」
アクセスnを終えてください。
xに読むように設定してください。(別名としてのf)
表示対話x --表示するでしょう: #%
UTF-8ファイルから読むために、使用は、 […]を«のクラスutf8≫と読みました。これは ユニコードテキスト価値を返すでしょう。 このコマンドが大量の «クラスutf8≫タイプを返すと予想しないでください、と «のクラスutf8≫はファイルを読むためにその方法がそうすると指定するだけです。
UTF-8ファイル、使用として書くには、 «のクラスutf8≫として[…]を書いてください。
UTF-16ファイルから読むために、使用は、 […]をユニコードテキストと読みました。 これは ユニコードテキスト価値を返します。

あなたが、キャラクタのUTF-16コードでありそうすることができるのを知っているならファイルの中へのユニコードが原稿を書く店に、規格が形成する使用は きます。 ASCII255、ファイルにはASCII254が初めにあるのを意識してください。

TempFileにfを設定してください。()
0のASCIIキャラクタにゼロを設定してください。
アクセスファイルfのために開くセットnは許可を書きます。
nに書いてください(254のASCIIキャラクタ)。
nに書いてください(255のASCIIキャラクタ)。
nに書いてください(35のASCIIキャラクタ)。
nに書いてください(37のASCIIキャラクタ)。
nに書いてください(ゼロとスペース)。
nに書いてください(ゼロ、「i」、ゼロ、および「s」)。
nに書いてください(ゼロとスペース)。
nへの「」 #%を書いてください」
アクセスnを終えてください。
xにユニコードテキストと読む(別名としてのf)ように設定してください。
msg(「UTF-16と読んでください」とx)
yに読むように設定してください。(別名としてのf)
msg(「ASCIIと読んでください」とy)
-- 結果:
UTF-16と読んでください: ⌥ ⌥です。
ASCIIと読んでください: ˛ˇ#%は#%です。
クラス ユニコードテキストで可変なAppleScriptに格納されるUTF-16ファイルユニコード、まさしく使用に書くために、 きなさい、ただし、手動で2ヘッダーバイト提供してください。 (スクリプトは、あなたが以前に上で正当な例を走らせたのを必要とします。)
TempFileにfを設定してください。()
アクセスファイルfのために開くセットnは許可を書きます。
(254のASCIIキャラクタ)とnへの(255のASCIIキャラクタ)に書いてください。
-- または、: nへの«のクラスutxtFEFF≫に書いてください。
nへの«データutxt2318≫に書いてください。
nに書いてください(xのキャラクタ1)。
アクセスnを終えてください。
ユニコードテキストと読んでください(別名としてのf)。
-- 結果:
"⌘⌥"
Smileはどうテキストファイルを開くか。 最初に戻る
与えられたファイルがASCIIかそれともUTF-8であるかを指定するタグが全くないので、Smileはデフォルト選択をファイルのタイプ(MacOSだけの特徴)に基礎づけます。 ファイルのタイプが TEXTであるときに、SmileはデフォルトでMacでコード化されたテキストとしてテキストウィンドウでそれを開きます。 (あなたは Fileメニューを引き下げている間、シフトキーとオプションキーを使用することによって、デフォルトの振舞いをくつがえすことができます。) さもなければ、それはユニコードとしてユニコードウィンドウでファイルを開きます。 Smileは自動的にファイルのヘッダーに基づくUTF-8かUTF-16を選択します。

AppleScriptがいつで アクセスのための戸外がある新しいファイルを[…]にするかが許可コマンドを書いて、それはタイプ TEXTをファイルに提供します。 このようにして、デフォルトで、ファイルはテキストウィンドウのSmileでいつも開くでしょう。 しかしながら、 アクセスがあなたがユニコードを格納するファイルを作成するのにあなたは戸外を使用したがっているかもしれません、例えば、 .xmlファイル。 彼らはSmileで正しく開くでしょう、ユニコードウィンドウで、ダブルクリックされると、1であるなら。あなたはヌル値、2にタイプを設定します。Smileに創造者を設定します。 以下の例はそうします。 (スクリプトは、あなたが以前に上の例を走らせたのを必要とします。)

0のASCIIキャラクタにゼロを設定してください。
ゼロ、ゼロ、ゼロ、およびゼロにfourzeroを設定してください。
fourzeroにfに関するファイルの種類を設定するようにアプリケーション「ファインダー」に言ってください。
Smileの"VIZF"--ものにfの創造者タイプを設定するアプリケーション「ファインダー」署名を言ってください。
fを開くようにアプリケーション「ファインダー」に言ってください --これはダブルクリックに似ています。
UnicodeNumber(s)とUnicodeCharacter(n) 最初に戻る
ここに、コマンドがASCIIキャラクタのためにする ASCII番号ASCIIキャラクタと同じ役割を果たす2つのルーチンがあります。 「バニラ」ルーチンである、それらはAppleScriptで築き上げられた特徴だけを使用します。 あなたがユニコードを操るつもりであるなら、彼らがあなたを助けるのは、ありそうです。
UTFTempFileに関して()
ツ????"「(ユーザドメインから「派遣社員として働く」経路)と「utf_Smile_ファイル」)、」
終わりのTempFile

UnicodeNumberに関して(s)
ツ????UTFTempFileへのet f()
ツ????アクセスのための戸外へのrがfをファイルするetは許可を書きます。
ツ????ry
ツ????????0へのet eof r
ツ????????ユニコードテキストとしてのrへの儀礼s
ツ????????アクセスrを失ってください。
ツ????????読むet ss(別名としてのf)
ツ????????etのnから0
ツ????????ry
ツ????????????epeat
ツ????????????????(ssのキャラクタ1のASCII番号)+256*nへのet n
ツ????????????????ssのテキスト2〜-1へのet ss
ツ????????????第反復
ツ????????第トライ
ツ????????eturn n
ツ????n誤りerrstr番号errnum
ツ????????ry
ツ????????????アクセスrを失ってください。
ツ????????第トライ
ツ????????sからのrror errstr番号errnum
ツ????第トライ
終わりのUnicodeNumber

UnicodeCharacterに関して(n)
ツ????UTFTempFileへのet f()
ツ????アクセスのための戸外へのrがfをファイルするetは許可を書きます。
ツ????ry
ツ????????0へのet eof r
ツ????????sをetする、「」
ツ????????epeat
ツ????????????0の当時の出口f n=反復
ツ????????????((nモッズ風の256)のASCIIキャラクタ)へのet sとs
ツ????????????n div256へのet n
ツ????????第反復
ツ????????f sの長さは、(0のASCIIキャラクタ)への0の当時のセットsとsです。
ツ????????f sの長さは、(0のASCIIキャラクタ)への当時の1セットsとsです。
ツ????????rへの儀礼s
ツ????????アクセスrを失ってください。
ツ????????eturn(ユニコードテキストと読みます(別名としてのf))
ツ????n誤りerrstr番号errnum
ツ????????ry
ツ????????????アクセスrを失ってください。
ツ????????第トライ
ツ????????nからのrror errstr番号errnum
ツ????第トライ
終わりのUnicodeCharacter

UnicodeCharacterに_オメガを設定してください。(937)
ツ????i>--"ホゥ"

UnicodeNumber(_オメガ)
ツ????i>--937

"ツャ"のASCII番号
ツ????i>--194
UnicodeNumber("ツャ")
ツ????i>--172


輸入スクリプト
どのように、ストリングとユニコードの間で強制するか。 最初に戻る
  • ストリングユニコードテキストのクラスの変数、まさしく使用に変換する、前置詞として :
    “a"にsを設定してください。
    sのクラス
    ツ??i>--ツ?tring
    ユニコードテキストとしてuからsを設定してください。
    uのクラス
    ツ??i>--ツ?nicodeテキスト
  • ユニコードテキストをレギュラーの ストリングに変換するために前置詞が本当に仕事しないので。 むしろ、 ストリングが変換されるので、いくつかへのユニコードテキストはオリジナルの内容をできるだけ保存するためにテキストを流行に合わせました。
    UnicodeCharacter(8984)と「A」にuを設定してください。
    ツ??i>--ツ?竚連"
    uのクラス
    ツ??i>--ツ?nicodeテキスト
    ストリングとしてsからuを設定してください。
    ツ??i>--ツ?竚連"
    sのクラス
    ツ??i>--ツ?tring
    sが、それが ストリングのクラスのものであると述べますが、あなたが見るように、それは単なる8ビットの2ASCII文字以上を含んでいます。 実際に、アプリケーションが本当にレギュラーの ストリングを予想しているいくつかの事情では、そのような量を通過するなら、あなたはAppleScript誤りを得ることができます。
    レギュラーの ストリングユニコードテキストの強制を力づくで押すには、 1〜-1まで抽出ストリング[…]を使用してください。
    sに1〜-1までストリングuを抽出するように設定してください。
    ツ??i>--ツ?「A」
戻る| 次へ
Copyrightツゥ2005パリ、Satimage