EmEditorのバグ?「ファイルに含まれている null 文字 (00H) は、スペースに変換して開きます」
エディッターとして「EmEditor」を愛用しています。中国語の扱いに長けているので、手放せないんですね。
ただ、ごくたまにではあるのですが、意味不明の不具合を起こします。EmEditorで作成したファイルを開こうとすると、「ファイルに含まれている null 文字 (00H) は、スペースに変換して開きます」というメッセージが表示され、ファイルの中身が意味不明の文字列に置き換わってしまうという奇怪な現象です。
以前はウィンドウズのメモ帳で開けば内容を取り出すことができたのであまり気にしていなかったのですが、メモ帳でも開くことができないケースが発生、しかも今回は一時間ほどかけて書いた原稿が吹っ飛んでしまうという悲惨なケースとなってしまいました。
これを失うのは非常に痛いので調査してみたのですが、これがほとんど引っかかりません。EmEditorのフォーラムで類似のケースは報告されていたのですが、ドンピシャな事例ではありませんでした。
なんとかならないものかと試行錯誤を繰り返して、最後はなんとか内容を取り出すことに成功したのですが、これが以外や以外にもオフィスのWORDで開くことができたんですね。
WORDでUnicode指定して開いたらなんなく開きました。意味不明です。WORDをインストールしていてはじめて「よかった」と思えた瞬間でした。
調査した限りにおいてはそれほど普遍的にみられる現象ではなかったのですが、WEBに残しておけばいつか何時にどなたかの役に立つのではないかと思い、メモを残しておきます。
中国語のテキストはUTF-16LEやUTF-8などのユニコードで保存していますか?もしそうであれば、BOM付で保存し、開く際もBOMを読み取って判断するような設定にする必要があります。
コメントありがとうございました。
>おそらく文字コードの自動判別に失敗したためだと思われます。
>中国語のテキストはUTF-16LEやUTF-8などのユニコードで保存していますか?もしそうであれば、BOM付で保存し、開く際もBOMを読み取って判断するような設定にする必要があります。
なるほど。BOMが鍵だったんですね。確かにその通りです。PHPファイルを扱うことがあるので、BOMを外して保存することが多いんです。当該のファイルも外していました。
今後はサーバに置く予定のないファイルについてはBOMを付けるようにしたいと思います。
