filein出来ない

自由自在Squeakプログラミングでお勉強中なのだけれど、サンプルコードをfileinしようとすると、
This string contains a character (ascii value 180) that is not normally used in code
と言われてfilein出来ない。調べてみると、どうやらサンプルコードの日本語の部分が文字化けしてエラーになっている。けど、おかしい。自分の環境(ubuntu)もファイルの文字コードも間違いなくUTF-8だ。SqueakUTF-8で活動しているらしい。なのに、文字化けでエラーになる。・・・・・ こうゆう時はGoogle先生に聞いてみるのが早い。

あっさり解決した。UTF-8なファイルにはBOMが付いてなきゃダメなんだって。

Byte Order Markの略で、Unicodeファイルのエンコーディング(UTF-8, UTF-16LE, UTF-16BE, UTF-32LE, UTF-32BE) を識別するために使われるマーカー(識別子)です。 Windows環境では、UTF-8、UTF-16LE, 16BE, 32LE, 32BEのいずれもBOM有が標準です。なおソフトウェアによっては、BOMを別の名称で呼ぶことがあります。 Unicodeサイン(EmEditorでの呼称)、UTF-8 シグニチャ(Visual Studio .NETでの呼称)、いずれもBOMのことです。

(ふ〜ん、知らなかった。いつの間にそんな取り決めが・・・)と言う事は、BOM付きUTF-8に変換してやればよいわけね。

$nkf -w8 SampleCode.st > SampleCode-BOM.st

これでOK?

OKだった^^