EUC ファイルの grep に関してNo.19670
Takahito さん 05/07/22 18:56
 
こんにちは。
秀丸でどうしてもうまくいかないので教えてください。

EUC(CR+LF)の文字コードであるファイルを開き、そのファイルで日本語の文字列をgr
epしようとすると、何も引っかからなくなってしまいます。
#1バイトコードは引っかかります。

grepの結果ファイルを見ると、SHIFT-JISで結果が出ています。
また、1バイトコードでそのファイルに対してひっかけた結果は文字化けしています。

これはなぜでしょうか?ファイルのせいでしょうか?
ちなみに、そのファイルを開いたときは、自動判別でEUCとなっています。

対処方法をご存じの方、お教えいただけますでしょうか?

秀丸:4.18
OS:WinXP SP1

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

[ ]
RE:19670 EUC ファイルの grep に関してNo.19671
秀丸担当 さん 05/07/25 10:00
 

>EUC(CR+LF)の文字コードであるファイルを開き、そのファイルで日本語の文字列をgr
>epしようとすると、何も引っかからなくなってしまいます。
>#1バイトコードは引っかかります。
>
>grepの結果ファイルを見ると、SHIFT-JISで結果が出ています。
>また、1バイトコードでそのファイルに対してひっかけた結果は文字化けしています。
>
>これはなぜでしょうか?ファイルのせいでしょうか?
>ちなみに、そのファイルを開いたときは、自動判別でEUCとなっています。

[その他]→[動作環境]→[ファイル]→[エンコード1]で、[ファイルの内容を解析
してエンコードの種類を自動認識する]が有効になっている場合、grepでも自動
認識されるはずです。

そのファイルを開いたときはEUCと自動認識されるのに、grepではできないのは、
もしかしたらヒストリから開いているためかもしれません。
[その他]→[動作環境]→[ファイル]→[ヒストリ]で、[ヒストリから開くときは
前回のエンコードの種類で開く]が有効になっていると、自動認識ではなく前回
のエンコードの種類で開きます。

ちなみに上記設定は、[その他]→[動作環境]で[上級者向け設定]をチェックする
と変更できます。

そうでもないのに「開く」とgrepの認識が異なるという場合は、何らかの不具合
があるかもしれません。
不具合と疑わしい場合、差し支えなければ問題の起きるファイルと、設定内容を
ファイルに保存したものを送っていただけると助かります。
[その他]→[設定内容の保存/復元]より、設定内容を保存できます。
送っていただける場合、送り先は xxxxxxxx@nifty.ne.jp まで秀丸担当宛てであ
ることを書いて送ってください。

[ ]
RE:19671 EUC ファイルの grep に関してNo.19686
Takahito さん 05/07/28 19:38
 
秀まるおさん、ご返答ありがとう御座います。

メールでお送りしますが、こちらでも報告させていただきます。

>[その他]→[動作環境]→[ファイル]→[エンコード1]で、[ファイルの内容を解析
>してエンコードの種類を自動認識する]が有効になっている場合、grepでも自動
>認識されるはずです。

こちらは有効になっていました。

>そのファイルを開いたときはEUCと自動認識されるのに、grepではできないのは、
>もしかしたらヒストリから開いているためかもしれません。
>[その他]→[動作環境]→[ファイル]→[ヒストリ]で、[ヒストリから開くときは
>前回のエンコードの種類で開く]が有効になっていると、自動認識ではなく前回
>のエンコードの種類で開きます。

これまた有効になっておりました。

>不具合と疑わしい場合、差し支えなければ問題の起きるファイルと、設定内容を
>ファイルに保存したものを送っていただけると助かります。
>[その他]→[設定内容の保存/復元]より、設定内容を保存できます。
>送っていただける場合、送り先は xxxxxxxx@nifty.ne.jp まで秀丸担当宛てであ
>ることを書いて送ってください。

不具合かどうかは判断つきませんが、
ファイルの内容だけでは何も推測できないと思いますので、
ファイルをお送りさせていただきます。

調査解析のお役に立てばと思います。

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

[ ]
RE:19686 EUC ファイルの grep に関してNo.19691
秀丸担当 さん 05/07/29 11:17
 

>不具合かどうかは判断つきませんが、
>ファイルの内容だけでは何も推測できないと思いますので、
>ファイルをお送りさせていただきます。
>
>調査解析のお役に立てばと思います。

ファイルを頂きました。
ありがとうございます。
やってみたところ、状況を再現させることができました。
調べたところ、「開く」では「最初に確定したものにする」のエンコードの種類
を決定するときに16KB単位で区切って判定しているのに対し、grepでは8KB単位
で区切られて判定していました。
問題のファイルは、判定が確実となる文字が出現するのが8KB以降にあったため、
食い違いがおきていたようです。
どちらでも同じになるように修正したいと思います。V5.00よりも後のバージョ
ンになります。
ちなみにEUCで改行コードLFで保存すると判定の手助けとなります。

あとgrepでエンコードの種類を指定するような設定も設けたほうがいいかもしれ
ないので検討したいと思います。

[ ]
RE:19691 EUC ファイルの grep に関してNo.19697
TakahiPo さん 05/08/01 10:08
 
>やってみたところ、状況を再現させることができました。

再現試験・解析いただきありがとうございました。

>どちらでも同じになるように修正したいと思います。V5.00よりも後のバージョ
>ンになります。
>ちなみにEUCで改行コードLFで保存すると判定の手助けとなります。

今回のファイルは、あるツールを用いて出力させたものだったので
あまり意識して作ったものではないというのが実情だったりもします…

今後の問題回避に利用させていただきます。

>あとgrepでエンコードの種類を指定するような設定も設けたほうがいいかもしれ
>ないので検討したいと思います。

了解いたしました。
急ぎではありませんので、ご検討をしていただければと思います。

[ ]
RE:19691 EUC ファイルの grep に関してNo.20226
TakahiPo さん 05/10/21 14:15
 
>問題のファイルは、判定が確実となる文字が出現するのが8KB以降にあったため、
>食い違いがおきていたようです。
>どちらでも同じになるように修正したいと思います。V5.00よりも後のバージョ
>ンになります。

だいぶ遅くなりましたが、問題が修正されていることを確認しました。どうもありが
とうございました。

[ ]