[ 新規に投稿する ]

「別ファイルへの追加保存」とBOMNo.11057
h-tom さん 22/10/02 00:07 [ コメントを投稿する ]
  h-tom です。

OS:Windows11(21H1) x64
秀丸エディタ:Ver.9.19β12(x64)

1)「別ファイルへの追加保存」ですが、unicodeだと追加部分の先頭にBOMが付きます。
  正確にはダイアログのエンコードの指定次第で、BOMが付いたり付かなかったりします。
  空のファイルに追加する場合以外は、unicodeでもBOMが付かない方がありがたいです。
  
  a)UTF-16LE(BOMあり)のファイルに、UTF-16LE(BOMあり)のファイルを開き、「別ファイルへの追加保存」をエンコードを「自動判定」で行うと追加した先頭部分にBOMは付かない。
  b)UTF-16LE(BOMあり)のファイルに、UTF-16LE(BOMあり)のファイルを開き、「別ファイルへの追加保存」をエンコード指定「unicode」で行う追加した先頭部分にBOMが付く。
  c)UTF-8(BOMあり)のファイルに、UTF-8(BOMあり)のファイルを開き、「別ファイルへの追加保存」をエンコードを「自動判定」/「UTF-8」ともに、追加した先頭部分にBOMが付く。
  
  appendsave も saveas と同じオプションが使えるとのことなので、マクロ使えばなんとかなると思いましたが「nobom」 は効いていないようです。(数値指定もダメ)
  
  //一時ファイル作る
  $basefile = getenv("tmp") + @"\_base_utf-8.txt";
  //元のファイルをUTF-8 BOM 付きで保存
  newfile;
  insert "end";
  saveas $basefile, utf8, bom;
  #main = hidemaruhandle(0);
  
  //追加する内容
  newfile;
  insert "add";
  //追加分をUTF-8 BOM 付きに設定
  setencode 6,1,1;
  #sub = hidemaruhandle(0);
  
  //間にBOMあり
  appendsave $basefile, utf8, nobom;
  //appendsave $basefile;
  
  setactivehidemaru #main;
  //追加した内容を閉じる
  closehidemaruforced #sub;
  //自動判定で再読み込み
  setencode 0;
  endmacro;
  
2)[要望] Ver.9.16以降だと、openfile で各種起動オプションが数値指定でもできるようになりましたが、"/h" も数値指定できるとうれしいです。
[ ]
RE:11057 「別ファイルへの追加保存」とBOMNo.11058
秀丸担当 さん 22/10/03 09:54 [ コメントを投稿する ]
  バグ情報ありがとうございます。
マクロで確認して、確かにそういう結果になっていることが確認できました。
空のファイル以外はBOMは付かないように修正させていただきます。

openfileのエンコード以外の数値指定で、/hもできたらいいかもしれません。
逆にJavaScriptだと数値しかできないので、予約語の文字列ではなく、普通の文字列で指定できたらいいです。
ご意見参考にさせていただきます。
[ ]

[ 新規に投稿する ]