見た目は同じなのに違うんですね。 [AppleScript辞書はつくれるか?]
"abc" & return & "123"
結果は
(*abc
123*)
※ちなみに(*と*)は、結果を表示する時の意味のあるおまけなので無視してほしい。
もう一つ、Applescriptでは文字列に関してだけできる便利な記入方法で、直接改行を入力できるという便利な方法があります。
"abc
123"
結果はおなじく
(*abc
123*)
順番が変わってるけど
ほら、おなじですよね?
でもおかしな現象があるのです。
この時の、text_Aとtext_Bは、確かに同じに見えるのですが
判定を行うと
結果:
fales
異なってるよと出ます。
なぜ?
不思議なので、キャラクターのID番号を参照してみた。
なぜか改行の部分のIDが違っています。
ちなみにIDの10(16進数で0A)と13(16進数で0D)を確認してみました。
ID 10はLF、ID 13はCR
そうですか、LF(ラインフィード)とCR(キャレッジリターン)という別な改行コードが使われていたんですか。
それは違ってて当然です。
でも、何故こんなことが起きるのでしょう?
ウィキを見てみました。
多くのシステムでは、改行コードを1つまたは連続する2つの特殊文字で表している。
ASCII文字コードに基づくシステムでは、CR(復帰、0x0D)、LF(改行、0x0A)、またはCR+LFで表している。
LF: UNIXやUnix系のシステム。Linux、AIX、Xenix、Mac OS X、BeOS、Amiga、RISC OSなど。
CR+LF: CP/M、MP/M、MS-DOS、OS/2、Microsoft Windows。
CR: コモドールによるシステム、Apple IIファミリ、Mac OS(バージョン9まで)、OS-9。
直接入力するとLF、予約語のreturnを使えばCR。
予約語は昔のシステムOS9以前の改行方式で、
直接だと、新しいシステムのOS Xの改行が使われてしまうんですね。
どうりで、うまく比較できない訳だ。
一つ賢くなりました。
コメント 0