#6023

Yutaka Emura
キーマスター

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)で検索されることでした。

このような動作は意図されたものでしょうか、それとも不具合でしょうか?

以上、ご確認願います。

これは、仕様とおりの動作ということになります。ファイルを開くときのエンコードと、あとから「ファイルから検索」を開くときのエンコードは関連していないためです。将来的に、あるファイルを開いている状態で「ファイルから検索」を行った場合には、開いているファイルのエンコードを優先するようにした方がいいでしょうか?