UTF8のBOMが表示される現象No.30775
foobarr さん 12/01/24 11:36
 
こんにちわ。

秀丸エディタで希にUTF8のBOMが表示されることがあります、ご確認をお願いできな
いでしょうか。
(画像)
http://imageshack.us/photo/my-images/408/20120124hidemaru.png/


【手順】
・秀丸エディタで「UTF8 BOM無し」のテキストファイルを開きます。
・後述のバッチ(.BAT)でBOMを付けたり削除したりします。(文字コードは変更しま
せん)
・希に秀丸エディタでBOMが表示されます。


【秀丸で開いているファイル】
タブグループは2つ。
  グループ1は5タブ
  グループ2は12タブ


【add-bom.bat】
@echo off
set TMPFILE=%TMP%\iconv_tempfile_9786534.tmp
set APP=nkf.exe -W8 -w8 -x -O
for %%i in (*.cpp *.h) do (
%APP% %%i %TMPFILE%
copy /B /Y %TMPFILE% %%i
)
del %TMPFILE%


【remove-bom.bat】
@echo off
set TMPFILE=%TMP%\iconv_tempfile_9786534.tmp
set APP=nkf.exe -W8 -w80 -x -O
for %%i in (*.cpp *.h) do (
%APP% %%i %TMPFILE%
copy /B /Y %TMPFILE% %%i
)
del %TMPFILE%


【nkf Network Kanji Filter】
http://sourceforge.jp/projects/nkf/
バッチファイルと同じディレクトリに nkf.exe をおいて下さい。


【環境】
windows7 64bit
秀丸エディタ ver8.12

[ ]
RE:30775 UTF8のBOMが表示される現象No.30776
秀まるお2 さん 12/01/24 12:20
 
 テストしたら再現出来ました。ただ、僕の見つけた条件と同じかどうか、ちょ
っと確認お願いしたいです。

 僕の見つけた条件としては、まずは

 #include <xxxxx.h>

 みたいなローマ字のみのファイルを作成して、それを秀丸で開きます。そうす
ると、そのファイルは秀丸としてはShift-JIS扱いで読み込むことになります。

 タイトルバーに、

 abc.cpp [Shift-JIS] - 秀丸

 と出ます。

 その状態でadd_bom.batを実行して、秀丸エディタをクリックして、

    abc.cpp
    このファイルは、他のアプリケーションによって書き換えられてしまいま
    した。読み込みなおしますか?

 が出て、「はい」を押すと、そのままShift-JISのつもりで読み込んでしまっ
て、結果、BOMがそのまま出てきてしまうようです。

 という話だとしたら…。どうしたらいいのか…。

 こういう場合も文字コード自動判定からやり直した方がいいですかね。という
か、例えば文字コードがうまく自動判定出来ないケースで、再読込の度に文字
コードの問い合わせが出たら、それはそれでうざいってユーザー様もおられるよ
うな気がします。


 念のため、オプション追加で対応する方がいいような気がしますけども…。
「動作環境・ファイル・エンコード1」の中に、「再読み込み時に自動判定しな
おす」とか…。

 何かご意見があればお願いします。

[ ]
RE:30776 UTF8のBOMが表示される現象No.30777
秀まるお2 さん 12/01/24 12:34
 
 追加ですみません。

 そもそもですが、asciiのみのファイルだと、utf-8かShift-JISか自動判定が
出来なくて、それがShift-JIS扱いになってしまってるとしたら、それをutf-8扱
いになるように設定変更するのがいいと思います。

 「動作環境・ファイル・エンコード1」の中の自動認識の並び順を、utf-8を
Shift-JISより上に移動すればいいです。

 あと、新規作成した時にutf-8を基本にするには、そこにある「標準の
エンコードの種類」をutf-8にすればいいです。

 それで問題解決のような気がします。

[ ]
RE:30777 UTF8のBOMが表示される現象No.30778
秀まるお2 さん 12/01/24 12:36
 
すみません。間違いがありました。

>  「動作環境・ファイル・エンコード1」の中の自動認識の並び順を、utf-8をShi
>ft-JISより上に移動すればいいです。

 これは、そのようにしてもダメでした。

「標準のエンコードの種類...」の方をutf-8にするやり方でいけるようです。こっち
でどうでしょ?

[ ]
RE:30778 UTF8のBOMが表示される現象No.30779
foobarr さん 12/01/24 13:48
 
文字コードはShift-JIS中心で使うため、残念ながら
「標準のエンコードの種類...」をUTF8へ変更することは難しいです。

仕事柄、色々な文字コードを使いますが秀丸エディタが文字コード判定
を間違ったことはないので、個人的には「再読み込み時に自動判定しな
おす」オプションを追加して頂けるのがありがたいです

[ ]
RE:30779 UTF8のBOMが表示される現象No.30780
秀まるお2 さん 12/01/24 17:13
 
 では、「動作環境・ファイル・エンコード1」の所にオプション追加させてい
ただきます。

 次のV8.13β1は、僕がいろいろいじってしまってレベルダウンが怖いので、今
こちらでいろいろテストをしています。なので公開出来るまでちょっと時間がか
かりそうです。

 公開されましたら是非お試しお願いします。

[ ]
RE:30780 UTF8のBOMが表示される現象No.30781
秀まるお2 さん 12/01/24 23:48
 
 やっぱり「ファイル・排他制御」の所に追加します。

[ ]