grepの文字化けNo.38287
mig さん 20/07/04 18:22
 
migともうします。いつも便利に使わせて頂いています。ありがとうございます。

さて、UTF-8のファイルを開き「現在の内容」にgrepを掛けると普通に結果が出ます。
しかし、同一ファイルがサブフォルダに存在していて、上位フォルダの別のファイル
から「*.txt」を対象にして、grepを掛けると検索文字が検索されず、別の行が文字
化けして、その文字化けした中に検索文字が存在しており、それが検索されてしまい
ます。

 ちなみに、検索文字列は「怙」(りっしんべんに古)です。上の行が文字化けして
いないもの(該当文字を含んでいない)で、下の行が文字化けしているもの(結果的
に検索文字列を含んでいる)です。

1_052_B42 v3#23 人 儧 Regular  子管反。最也。 a025b032  
1_052_B42 v3#23 莠コ 蜆ァ Regular  蟄千ョ。蜿阪よ怙荵溘・a025b032  

 ご入り用でしたら、当該ファイルをお送りすることは可能です。

 説明しづらく申し訳ありません。

 よろしくお願いいたします。
 取り急ぎです。

 よろしくお願いいたします。

[ ]
RE:38287 grepの文字化けNo.38290
秀丸担当 さん 20/07/06 09:16
 

grepダイアログで「(現在の内容)」を選んだときは、現在開いているファイルのエン
コードは気にしなくてよくなるので、文字化け等の問題は無いと思います。

「*.txt」などのファイルを指定の場合は、エンコードの種類の自動認識か、明示指
定かによって動作が違う可能性があります。
grepダイアログの「エンコードの種類」が「自動判定」の場合は、[その他]→[動作
環境]→[ファイル]→[エンコード1]の自動判定の設定によります。
ここで、UTF-8の自動認識がOFFになっていて、Shift-JISがONになっていたりすると、
言われている通りになります。
他にも組み合わせによってはUTF-8とならないケースがあるかもしれないです。
インストールした初期状態では、UTF-8もONになっていて、サンプルの行では問題無
さそうでした。
もし差し支えなければ、問題の起きるファイルと[その他]→[設定内容の保存/復元]
で設定内容をファイルに保存したものを"taki@maruo.co.jp"まで送っていただけると
正確なことがわかると思います。

UTF-8のファイルをBOM付きで保存すると誤認識を減らすことができます。
[ファイル]→[エンコードの種類]→[BOM]をONにして上書き保存か、[ファイル]→[名
前を付けて保存]でBOMを付けるチェックをONにして保存するとBOMが付きます。
[その他]→[動作環境]→[ファイル]→[エンコード1]で「UnicodeのBOMを認識」がON
になっていると認識します。

[ ]
RE:38290 grepの文字化けNo.38291
mig さん 20/07/06 09:38
 
 早速のお返事ありがとうございます。

 たくさんのファイルに対して、一度にgrepをかけることがしばしばあって、それぞ
れのファイルがs-jisなのかUTF-8なのか、はたまた他の形式なのか、さまざまに混じ
っているように思います。

 とりあえず、ファイルをお送りいたします。BOMはついていませんでした。

 取り急ぎです。

[ ]
RE:38291 grepの文字化けNo.38293
秀丸担当 さん 20/07/06 14:01
 

ファイルを受け取りました。
ありがとうございます。
こちらでも再現させることができました。
自動認識でUTF-8はONになっていましたが、grep時の自動認識と、通常に開いたとき
の自動認識の具合が違う問題がありました。
テキストの途中にあるU+3DA8の文字の認識の具合が違っていました。
今後のバージョンで同じになるように修正させていただきます。

現状で、設定で回避する方法があります。
[その他]→[動作環境]→[ファイル]→[エンコード1]で、「優先順位に従う」をONに
すると回避できます(grepでも優先順位に従うようにするには、秀丸エディタV8.90
以降が必要です)
問題の回避が目的のため、「優先順位に従う」をONにするだけでよくて、UTF-8は上
位にしてもしなくても、どちらでも大丈夫です。
少し遅くなるので、サンプルで送っていただいたファイルについては、現状ではBOM
付きにするのが確実だと思います。

[ ]
RE:38293 grepの文字化けNo.38294
mig さん 20/07/06 19:06
 
ありがとうございます。

ご紹介頂いた方法で回避できました。ありがとうございます。

事実上一日で解決されるのは、本当に嬉しいです。

これからもよろしくお願いいたします。お返事はご放念下さい。

[ ]
RE:38293 grepの文字化けNo.38483
mig さん 20/10/14 10:10
 
この件ですが、秀丸がverupしたので、試してみました。
結果は変わっていませんが、ご指摘頂いた方法で回避できていますので、特に問題は
ありません。少し遅くなるとのことでしたが、それも気になりません。
念のため、ご報告いたします。

取り急ぎです。

[ ]
RE:38483 grepの文字化けNo.38489
秀丸担当 さん 20/10/14 11:15
 

ご確認ありがとうございます。
どちらの方法でも大丈夫ということでよかったです。

[ ]