☆ISO C locale と ISO-2022 とエスケープシーケンス、あるいは mbrtowc() に 1 バイトずつ渡してはいけない理由 .ISO C locale は一応ステートフルエンコーディングを扱えるということにはなっていて、実際 Citrus でも itojun さん謹製の ISO2022 モジュールをベースにした ja_JP.ISO-2022-JP locale が用意されてはいる。でも、一つだけ問題がある。 .それは、ISO-2022 が状態遷移にエスケープシーケンスを使っているので、エスケープシーケンスを利用している他の機能 --- 一番メジャーな所では ISO 6429 のいわゆる ANSI 端末エスケープシーケンスおよびその眷属 --- との相性が良くない、ということなんだな。 .一つ例を考えてみよう。ISO 6429 の画面消去のエスケープシーケンスは ESC