Yutakaさんは書きました:
おそらく、そのファイルの中に、Shift JIS に変換できないデータが存在するのですが、ファイルを保存するときに、元のデータのまま保存されるため、バイナリで比較しても同一になるのだと思います。もし、小さなファイルに切り取って、同じような現象が発生するようでしたら、どのデータに問題があるかが特定できるかと思います。それで、バイナリ ファイルで開いて、問題が発生するバイトを特定していただくか、小さなサンプルを送っていただければ、こちらでも調べてみたいと思います。何度もテストして、バイナリの比較で問題ないようでしたら、警告メッセージは無視して編集していただいても問題はないかと思います。
>おそらく、そのファイルの中に、Shift JIS に変換できないデータが存在するのですが、ファイルを保存するときに、元のデータのまま保存されるため、バイナリで比較しても同一になるのだと思います。もし、
貴プログラムの「指定したエンコードで、、、、」ダイアログには
「警告:現在のエンコードで開いて保存するとファイルの中身が破壊されます。」
と書いてあるのですが、この言葉はそのまま開いて別名で保存すると破壊(変なエンコードが正常なエンコードに変換されるから、前のファイルと違うようになって破壊される)という意味だと思ったのですが
>「ファイルを保存するときに、元のデータのまま保存されるため」
とメールでご返答いただけましたよね、、
どっちが本当ですか?
それとも、「別名で保存」の時には中身を変更しないのでしょうか?
今、確認しましたが、「指定したエンコードで、、、、」ダイアログが出た後そのまま同じ選択をして、開き終わってから、空行を追加して、その空行を削除して、変更したことにした後そのまま保存しました。
しかし、そのファイルと元のファイルをバイナリで比較したところ
何も違いが有りませんでした。
これは、どういうことでしょうか?
もし、エンコードが違うのであれば、当然この2つのファイルは、違うものになってないとおかしいと思いますが、、、