【Mery】【要望】[オプション - 基本 - 既定のエンコード]の動作について

  1. こんにちは。Mery Build 2.2.3 4964を使わせて頂いている者です。

    件名の機能の仕様についてなのですが、この項目で"UTF-8 (BOM付き)"を選択していると、ASCIIコードで保存されたファイルを開いた時にステータスバーに"UTF-8 (BOM付き)"と表示され、さらに上書き保存した時に、ASCIIコードしか含まないデータでも強制的にBOMが付けられてしまう動作になっているように思います。(日本語などを含むBOMなしUTF-8テキストを開いた場合はこのようなことはないようです)

    この仕様ですと、BOMに特に注意を払わずにデータを編集していると知らないうちにBOMの有り無しが入れ替わってしまい、混乱してしまうことがあります。

    なので、下記のような仕様に変えることを検討していただけるとありがたいです。

    ●ASCIIコードのファイルを開いた時にUTF-8 と表示されるのはかまわないのですが、正確にBOM無しと表示してほしい。
    ●上書き保存時に強制的にBOMを付けるのは、Meryでファイルを新規作成した場合かまたは空のファイルを開いた場合のみにしてほしい。

    以上よろしくお願いします。

     |  chrono  |  返信
  2. こんばんは、Mery をご愛用くださりありがとうございます。

    「既定のエンコード」は ASCII コードのみで保存されたファイルのようにエンコードの自動判別ができない場合に適用されるエンコードのことです。(日本語を含むテキストの場合は BOM 有無を含め、たいてい文字コードの自動判別ができますのでこの設定は使用されません)

    "UTF-8 (BOM無し)" を選択しておけば ASCII コードのみのテキストなどでエンコードが判別できない場合に BOM 無しが選択されます。

    恐らく既定のエンコードという設定項目を誤解されているのではないかと思うのですが…

    ちなみに、既定のエンコードで BOM 付きを選択しているにもかかわらず ASCII コードのみのテキストだけは BOM 無しで保存、というような特定のユーザ向けの個別カスタマイズは申し訳ございませんが方針的に対応できかねますのでご了承いただけると幸いです。

     |  Kuro  |  返信
  3. と思いましたが、新規作成時は "BOM 付き" で、エンコード不明の場合は "BOM 無し" というケースを実現しようとすると現在の仕様では不可能ですね。

    そうなると新規作成時のエンコードも別途指定するようなオプションが必要になってややこしくなってきますが、そういった仕様のテキストエディタもあるようですね…

    検討させていただきます。

     |  Kuro  |  返信
  4. 返信ありがとうございます。

    確かに「既定のエンコード」の設定を誤解していました。好みの話になってしまいますが、こういう機能は新規作成時用と思ってしまっていた部分はあります。

    個別にカスタマイズしてほしいということではありませんので、Kuroさんの方針や開発の都合に合わないということであれば、見送りということでかまいません。

    ありがとうございました。

     |  chrono  |  返信
  5. 私のほうこそ既定のエンコードの設定が「新規作成時」のエンコードとしても使われていたことを忘れており、ご要望の二点を少し勘違いしていたようです。失礼いたしました。
    昨日は既定のエンコードの設定を「新規作成時」と「ファイルを開くとき」で個別に設定できれば良いかなと考えておりました (そういう機能があるテキストエディタもありますし) が、個別に設定できたとしても BOM の有無を切り替えるぐらいしか使い道がないような気がしてきました。

    そこで、ご要望頂いた二点ですが、

    > ●ASCIIコードのファイルを開いた時にUTF-8 と表示されるのはかまわないのですが、正確にBOM無しと表示してほしい。
    > ●上書き保存時に強制的にBOMを付けるのは、Meryでファイルを新規作成した場合かまたは空のファイルを開いた場合のみにしてほしい。

    chrono さんがおっしゃる通りだと思いました。
    BOM 付きのファイルは確実に自動判定可能です。裏を返せば ASCII コードのみのような文字コードを判定できないファイルは当然 BOM 無しということになります。
    なので既定のエンコードが「BOM 付き」になっていたとしても「ファイルを開く」際に、BOM の有無は判定できますので「BOM 無し」が適用されるのが妥当ですね。

    ですので、仕様としては

    ● 既定のエンコードは「新規作成時」と「自動判定できない場合」に適用される(現状通り)
    ● 既定のエンコードで「UTF-8 BOM 付き」を選択していて、エンコードの自動判定ができない (BOM が付いていない場合) は「UTF-8 BOM 無し」が適用される

    といった感じになります。
    そうなると、二点、懸念事項が出てきます。

    ① 副作用として、空のファイルを開いたときはエンコードの自動判定ができないし BOM が付いていないので「UTF-8 BOM 無し」が適用される
    ② エンコード不明のファイルはいかなる場合でも BOM 付きにしたい!というユーザがいたら困っちゃう

    ちょっと②が気になるところではありますが、ご意見を聴く場もここかツイッターぐらいしかありませんのでどうしましょう…
    一応、今の気分としては仕様変更の線で進めていこうかと思っていますが、もう少し検討してみます。

     |  Kuro  |  返信