英語表現形式のスクリプト中で文字列を表す場合、「"」で文字列を囲めばそのまま文字列として認識されます。例えば「"果物"」とすれば、これは「果物」という文字列を表しているわけですね。ところが、この方法だけではうまくいかない場合もよくあります。例えば、「表示」という文字列をスクリプト中で表したい場合、そのままではうまくいきません。
上の例では、「表」という文字の後の部分でエラーが表示されていますが、エラーの内容を読んでも今一つ意味が分かりませんね。
実はこのエラー、スクリプト編集プログラムが2バイト文字をうまく扱えないために生じるものなのです。
AppleScriptでは、文字列中に「"」を書く場合「\(バックスラッシュ)」を使用します。例えば「これは"サンプル"です。」という文字列をスクリプト中に記述したければ、「"これは\"サンプル\"です。"」と書くことになります。また「\」自身を表すためには「\\」と書く必要があります。
この「\」という1バイト文字のアスキー番号は「92」です。また「表」という2バイト文字のアスキー番号は「149:92」です。… もう分かりますよね? 「表」という文字の2バイト目が「\」と同じであることから、スクリプト編集プログラムは「表」の次に「"」または「\」が来ることを期待するわけです。しかし実際にはそのような文字を表しているわけではないため、この部分でエラーが生じてしまうのです。
2バイト目のアスキー番号が「92」の2バイト文字は全部で39種類あります。
― ソ Ы \ 噂 浬 欺 圭 構 蚕 十 申 曾 箪 貼 能 表 暴 予 禄
兔 喀 媾 彌 拿 杤 歃 濬 畚 秉
綵 臀 藹 觸 軆 鐔 饅 鷭 \
頻繁に使用する文字も含まれている点に注意して下さい。
この問題の解決法方ですが、上記の39文字については2バイト目の「\」を「\\」にする、つまり「表」は「表\」と書くことで正しく表記されます。しかし39種類全てを覚える必要はありません。文字列の途中でエラーが出るのはこの問題が生じた場合だけなので、適当に文字を書き込んでコンパイルし、エラーが出たらその末尾の部分に「\」を書き足すだけで十分でしょう。よく書く文字だけ記憶しておき、あらかじめ「\」を書き込んでおけば、実用上ほとんど問題にならないはずです。
以上、スクリプトに直接文字列を書き込むときの問題点でした。