「設定されたエンコード」で「ファイルから検索」する際の不具合?

投稿者: yuk2 声3 投稿

環境  OS   :WinXP Pro SP2  EmEditor:7.00.4 Pro 正式版 「設定されたエンコード」で「ファイルから検索」する場合、期待したエンコードでヒットしてくれません。 再現手順を以下に示します。 (1)EmEditorの設定の定義「Text」で、本現象に関連すると思われる以下のような設定を行う。 [ファイル]タブ  HTML/XMLのCharsetを検出     □  すべて自動検出         □  Unicodeサイン(BOM)を検出    レ  UTF-8を自動検出         レ  改行方法が不統一ファイルで警告 レ  開く時のエンコード       UTF-8 (2)"一二三" とだけ書いたテキストファイル「sjis.txt」(エンコードは"シフトJIS")と、同じく"一二三" とだけ書いたテキストファイル「utf-8.txt」(エンコードは"UTF-8 (BOM無し)")を用意し、任意の同一フォルダに保存。 (3)EmEditor を閉じる。 (4)上記で用意したファイル「sjis.txt」をダブルクリックで開く。  「指定したエンコードで変換できない文字が含まれています。編集を続行して保存するとファイルの中身が破壊されます。」というメッセージが表示されるので「OK」ボタンをクリック。 すると、ファイルが文字化けした状態で開かれる。 画面右下のエンコードの表記は「UTF-8 (BOM無し)」となる。 (5)文字化けを解消するため、メニューバーから[ファイル]-[読み直し]-[日本語 (自動選択)]を実行する。 すると、ファイルが正しく表示されるようになる。 画面右下のエンコードの表記は「日本語 (シフト JIS)」となる。 (6)メニューバーから[検索]-[ファイルから検索]を選択し、以下に示す条件で検索を実行する。  検索する文字列:一二三  検索オプションのチェックはすべて未チェック  エンコード:設定されたエンコード (7)すると、読み直し後に設定されているはずのエンコードは、上記で確認したとおり「日本語 (シフト JIS)」ですが、検索結果としては「sjis.txt」がヒットせずに「utf-8.txt」がヒットしてしまいます。 個人的に期待していた動作は、読み直し後にファイルから検索を実行した場合でも、「ファイルから検索」のダイアログの「設定されたエンコード」で検索する場合は、読み直し前に設定されていたエンコード(今回の例ではUTF-8)ではなく、読み直し後の現時点で設定されているエンコード(今回の例ではシフトJIS)で検索されることでした。 このような動作は意図されたものでしょうか、それとも不具合でしょうか? 以上、ご確認願います。
shiiyaさんは書きました: 環境  OS   :WinXP Pro SP2  EmEditor:7.00.4 Pro 正式版 「設定されたエンコード」で「ファイルから検索」する場合、期待したエンコードでヒットしてくれません。 再現手順を以下に示します。 (1)EmEditorの設定の定義「Text」で、本現象に関連すると思われる以下のような設定を行う。 [ファイル]タブ  HTML/XMLのCharsetを検出     □  すべて自動検出         □  Unicodeサイン(BOM)を検出    レ  UTF-8を自動検出         レ  改行方法が不統一ファイルで警告 レ  開く時のエンコード       UTF-8 (2)"一二三" とだけ書いたテキストファイル「sjis.txt」(エンコードは"シフトJIS")と、同じく"一二三" とだけ書いたテキストファイル「utf-8.txt」(エンコードは"UTF-8 (BOM無し)")を用意し、任意の同一フォルダに保存。 (3)EmEditor を閉じる。 (4)上記で用意したファイル「sjis.txt」をダブルクリックで開く。  「指定したエンコードで変換できない文字が含まれています。編集を続行して保存するとファイルの中身が破壊されます。」というメッセージが表示されるので「OK」ボタンをクリック。 すると、ファイルが文字化けした状態で開かれる。 画面右下のエンコードの表記は「UTF-8 (BOM無し)」となる。 (5)文字化けを解消するため、メニューバーから[ファイル]-[読み直し]-[日本語 (自動選択)]を実行する。 すると、ファイルが正しく表示されるようになる。 画面右下のエンコードの表記は「日本語 (シフト JIS)」となる。 (6)メニューバーから[検索]-[ファイルから検索]を選択し、以下に示す条件で検索を実行する。  検索する文字列:一二三  検索オプションのチェックはすべて未チェック  エンコード:設定されたエンコード (7)すると、読み直し後に設定されているはずのエンコードは、上記で確認したとおり「日本語 (シフト JIS)」ですが、検索結果としては「sjis.txt」がヒットせずに「utf-8.txt」がヒットしてしまいます。 個人的に期待していた動作は、読み直し後にファイルから検索を実行した場合でも、「ファイルから検索」のダイアログの「設定されたエンコード」で検索する場合は、読み直し前に設定されていたエンコード(今回の例ではUTF-8)ではなく、読み直し後の現時点で設定されているエンコード(今回の例ではシフトJIS)で検索されることでした。 このような動作は意図されたものでしょうか、それとも不具合でしょうか? 以上、ご確認願います。
これは、仕様とおりの動作ということになります。ファイルを開くときのエンコードと、あとから「ファイルから検索」を開くときのエンコードは関連していないためです。将来的に、あるファイルを開いている状態で「ファイルから検索」を行った場合には、開いているファイルのエンコードを優先するようにした方がいいでしょうか?
Yutakaさんは書きました:
shiiyaさんは書きました: (中略) 個人的に期待していた動作は、読み直し後にファイルから検索を実行した場合でも、「ファイルから検索」のダイアログの「設定されたエンコード」で検索する場合は、読み直し前に設定されていたエンコード(今回の例ではUTF-8)ではなく、読み直し後の現時点で設定されているエンコード(今回の例ではシフトJIS)で検索されることでした。 このような動作は意図されたものでしょうか、それとも不具合でしょうか? 以上、ご確認願います。
これは、仕様とおりの動作ということになります。ファイルを開くときのエンコードと、あとから「ファイルから検索」を開くときのエンコードは関連していないためです。将来的に、あるファイルを開いている状態で「ファイルから検索」を行った場合には、開いているファイルのエンコードを優先するようにした方がいいでしょうか?
仕様どおりの動作だったのですね。 「ファイルから検索」ダイアログの「設定されたエンコード」とは、読み直し前に設定されていたエンコードか、あるいは読み直し後に設定されているエンコードということしか頭になかったのですが、回答を頂いてから「ファイルから検索」のヘルプの「エンコード」の箇所を確認してみたら、「[設定されたエンコード] を選択すると、開くファイルの拡張子に関連付けられたプロパティで設定されているエンコードになります。」ときちんと書かれており、意味を取り違えていたのに気付きました。 見落としていました、すみません。 というわけで、今回EmEditorを使用していて、期待していた動作と異なる現象に遭遇したため質問させていただいたのですが、頂いた回答とヘルプの説明を読んでみたら、色々な面で現状のままの方が良いような気がしてきました。 ですので、『あるファイルを開いている状態で「ファイルから検索」を行った場合には、開いているファイルのエンコードを優先するようにした方がいいか』という件につきましては、個人的にはそこまでして頂かなくてもいいかな、と思います。 ご回答ありがとうございました。

このトピックの投稿: 3