1 件の投稿を表示中 (合計 9 個)
  • 作成者
    投稿
  • #5729
    yuk
    参加者

    環境
     OS   :WinXP Pro SP2
     EmEditor:7.00.1 Pro 正式版

    【再現環境の準備】
    以下のコマンドを実行し、UTF-16LEのBOMの有無とファイルサイズの大小が異なるテキストファイルを計4つ作成する。
    (使用している外部プログラムの入手先は脚注1参照。)
    chcp 932
    echo 一二三| nkf.exe –ic=CP932 –oc=UTF-16LE-BOM > BOM付き.小.txt
    echo 一二三| nkf.exe –ic=CP932 –oc=UTF-16LE > BOM無し.小.txt
    perl cp932all.pl | nkf.exe –ic=CP932 –oc=UTF-16LE-BOM > BOM付き.大.txt
    perl cp932all.pl | nkf.exe –ic=CP932 –oc=UTF-16LE > BOM無し.大.txt

    【不具合1】自動認識でも読み直しでも、「UTF-16LE (BOM無し)」のエンコードが正しく認識されない
    (本不具合の再現に関連すると思われる設定内容は脚注2参照。)
    「BOM付き.小.txt」および「BOM付き.大.txt」をダブルクリックで開くと、警告メッセージ等が表示されることなくファイルが開かれます。
    画面右下のエンコード欄を見ると、「UTF-16LE (BOM付き)」と認識されています。

    しかし、「BOM無し.小.txt」および「BOM無し.大.txt」をダブルクリックで開くと、「ファイルに含まれていた Null文字 (00H) は、スペースに変換して開きます。」という警告メッセージ等が表示され、「OK」を選択するとファイル内容が化けた状態で開かれます。(後者では「改行方法がすべての行で一致していません。」というメッセージが表示されるがそこでも「OK」を選択。)
    画面右下のエンコード欄を見ると、間違ったエンコードでそれぞれ「日本語 (シフト JIS)」「日本語 (JIS 1 バイト カタカナ可 – SO/SI)」と認識されています。
    次にメニューバーから[ファイル]-[読み直し]-[自動検出]を選択すると、今度はファイル内容をざっと見る限りでは正しく表示されるようになります。
    しかし、画面右下のエンコード欄を見ると、相変わらず間違ったエンコードで認識されたままになっています。
    任意のファイルを新規に作成し、「名前を付けて保存」ダイアログでエンコードとして「UTF-16LE」、「Unicodeサイン(BOM)を付ける」のチェックは外した状態で保存した時などは、画面右下のエンコード欄を見ると「UTF-16LE (BOM無し)」と認識されるので、読み直し後の上記の間違ったエンコードも「UTF-16LE (BOM無し)」として再認識されるのが正しい動作ではないでしょうか?

    【不具合2】「UTF-16LE (BOM無し)」の自動認識の精度が低い
    (本不具合の再現に関連すると思われる設定内容は脚注2参照。)
    不具合1で記載した「BOM無し.小.txt」のような、ファイル内容のエンコードを自動認識するための手がかりが乏しいサイズの小さなファイルでは、自動認識に失敗するのはある程度仕方がないと思いますが、エンコードを自動認識するために十分と思われるだけの文字集合を詰め込んだ「BOM無し.大.txt」のようなサイズの大きなファイルで自動認識に失敗するのは、何とか改善できないでしょうか?
    それとも当方の設定が悪いのでしょうか?

    ちなみに脚注2の設定の定義で「すべて自動検出」だけをチェック状態に変更すると(ヘルプを見ると「ファイルが非常に小さい場合は、誤認する場合がある」と書かれているので普段はあまり使いたくはないのですが)、「BOM無し.小.txt」および「BOM無し.大.txt」も文字化けしないで開けるようにはなりますが、画面右下のエンコード欄を見ると、いずれのファイルでも今度は「日本語 (自動選択)」という表示になってしまい、やはりエンコードが正しく認識されていないようなのです。

    以上、ご確認願います。

    【脚注1】再現環境の準備で使用している外部プログラムの入手先
    ・nkf.exe
     http://www.vector.co.jp/soft/dl/win95/util/se295331.html
     上記ページの「nkfwin.zip」ファイル(バージョン2.0.8)をダウンロード・展開して得られる「2080win」ディレクトリ内の「nkf.exe」ファイル

    ・perl
     http://downloads.activestate.com/ActivePerl/Windows/5.8/
     上記ページの「ActivePerl-5.8.8.822-MSWin32-x86-280952.msi」ファイル

    ・cp932all.pl
     http://www.miraclelinux.com/technet/samba30/cp932_script.html
     上記ページの「cp932all.pl」ファイル

    【脚注2】設定の定義「Text」で本現象に関連すると思われる設定内容
    [ファイル]タブ
     HTML/XMLのCharsetを検出     □
     すべて自動検出         □
     Unicodeサイン(BOM)を検出    レ
     UTF-8を自動検出         レ
     改行方法が不統一ファイルで警告 レ
     開く時のエンコード       日本語 (自動選択)
     新規作成時
      エンコード          日本語 (シフト JIS)

    以上

    #5731
    Yutaka Emura
    キーマスター

    shiiyaさんは書きました:
    環境
     OS   :WinXP Pro SP2
     EmEditor:7.00.1 Pro 正式版

    【再現環境の準備】
    以下のコマンドを実行し、UTF-16LEのBOMの有無とファイルサイズの大小が異なるテキストファイルを計4つ作成する。
    (使用している外部プログラムの入手先は脚注1参照。)
    chcp 932
    echo 一二三| nkf.exe –ic=CP932 –oc=UTF-16LE-BOM > BOM付き.小.txt
    echo 一二三| nkf.exe –ic=CP932 –oc=UTF-16LE > BOM無し.小.txt
    perl cp932all.pl | nkf.exe –ic=CP932 –oc=UTF-16LE-BOM > BOM付き.大.txt
    perl cp932all.pl | nkf.exe –ic=CP932 –oc=UTF-16LE > BOM無し.大.txt

    【不具合1】自動認識でも読み直しでも、「UTF-16LE (BOM無し)」のエンコードが正しく認識されない
    (本不具合の再現に関連すると思われる設定内容は脚注2参照。)
    「BOM付き.小.txt」および「BOM付き.大.txt」をダブルクリックで開くと、警告メッセージ等が表示されることなくファイルが開かれます。
    画面右下のエンコード欄を見ると、「UTF-16LE (BOM付き)」と認識されています。

    しかし、「BOM無し.小.txt」および「BOM無し.大.txt」をダブルクリックで開くと、「ファイルに含まれていた Null文字 (00H) は、スペースに変換して開きます。」という警告メッセージ等が表示され、「OK」を選択するとファイル内容が化けた状態で開かれます。(後者では「改行方法がすべての行で一致していません。」というメッセージが表示されるがそこでも「OK」を選択。)
    画面右下のエンコード欄を見ると、間違ったエンコードでそれぞれ「日本語 (シフト JIS)」「日本語 (JIS 1 バイト カタカナ可 – SO/SI)」と認識されています。
    次にメニューバーから[ファイル]-[読み直し]-[自動検出]を選択すると、今度はファイル内容をざっと見る限りでは正しく表示されるようになります。
    しかし、画面右下のエンコード欄を見ると、相変わらず間違ったエンコードで認識されたままになっています。
    任意のファイルを新規に作成し、「名前を付けて保存」ダイアログでエンコードとして「UTF-16LE」、「Unicodeサイン(BOM)を付ける」のチェックは外した状態で保存した時などは、画面右下のエンコード欄を見ると「UTF-16LE (BOM無し)」と認識されるので、読み直し後の上記の間違ったエンコードも「UTF-16LE (BOM無し)」として再認識されるのが正しい動作ではないでしょうか?

    【不具合2】「UTF-16LE (BOM無し)」の自動認識の精度が低い
    (本不具合の再現に関連すると思われる設定内容は脚注2参照。)
    不具合1で記載した「BOM無し.小.txt」のような、ファイル内容のエンコードを自動認識するための手がかりが乏しいサイズの小さなファイルでは、自動認識に失敗するのはある程度仕方がないと思いますが、エンコードを自動認識するために十分と思われるだけの文字集合を詰め込んだ「BOM無し.大.txt」のようなサイズの大きなファイルで自動認識に失敗するのは、何とか改善できないでしょうか?
    それとも当方の設定が悪いのでしょうか?

    ちなみに脚注2の設定の定義で「すべて自動検出」だけをチェック状態に変更すると(ヘルプを見ると「ファイルが非常に小さい場合は、誤認する場合がある」と書かれているので普段はあまり使いたくはないのですが)、「BOM無し.小.txt」および「BOM無し.大.txt」も文字化けしないで開けるようにはなりますが、画面右下のエンコード欄を見ると、いずれのファイルでも今度は「日本語 (自動選択)」という表示になってしまい、やはりエンコードが正しく認識されていないようなのです。

    以上、ご確認願います。

    【脚注1】再現環境の準備で使用している外部プログラムの入手先
    ・nkf.exe
     http://www.vector.co.jp/soft/dl/win95/util/se295331.html
     上記ページの「nkfwin.zip」ファイル(バージョン2.0.8)をダウンロード・展開して得られる「2080win」ディレクトリ内の「nkf.exe」ファイル

    ・perl
     http://downloads.activestate.com/ActivePerl/Windows/5.8/
     上記ページの「ActivePerl-5.8.8.822-MSWin32-x86-280952.msi」ファイル

    ・cp932all.pl
     http://www.miraclelinux.com/technet/samba30/cp932_script.html
     上記ページの「cp932all.pl」ファイル

    【脚注2】設定の定義「Text」で本現象に関連すると思われる設定内容
    [ファイル]タブ
     HTML/XMLのCharsetを検出     □
     すべて自動検出         □
     Unicodeサイン(BOM)を検出    レ
     UTF-8を自動検出         レ
     改行方法が不統一ファイルで警告 レ
     開く時のエンコード       日本語 (自動選択)
     新規作成時
      エンコード          日本語 (シフト JIS)

    以上

    自動認識というのは、どの設定のことでしょうか? EmEditor の中では自動認識という言葉は使っていません。 [Unicodeサイン(BOM)を検出] をチェックしただけの場合は、BOM無しのファイルは検出できないようになっています。ですからこれは仕様通りの動作になります。今、旅行中のため開発やデバッグができないのですが、もしまだ動作がおかしい場合は、サンプル ファイルを圧縮して添付ファイルで送っていただけますか?よろしくお願いします。 [email protected] 時間があるときに調べてまたご報告します。

    #5732
    yuk
    参加者

    Yutakaさんは書きました:
    自動認識というのは、どの設定のことでしょうか? EmEditor の中では自動認識という言葉は使っていません。

    ファイルをダブルクリックして開く時に、EmEditorがエンコードを自動で認識・決定して開いてくれる動作のことを自動認識と書いてしまっていました。
    「自動認識」と書いていた箇所を、EmEditorでの設定項目「開くときのエンコード」で指定している「日本語 (自動選択)」、もしくは「エンコードの自動選択」などと読み替えて頂くと、申し上げたかった趣旨が伝わり易くなるかもしれません。

    [Unicodeサイン(BOM)を検出] をチェックしただけの場合は、BOM無しのファイルは検出できないようになっています。ですからこれは仕様通りの動作になります。

    では、BOM無しのファイルのエンコードの自動選択もうまくいくようにするには、どのような設定の定義にすべきなのでしょうか?
    【脚注2】の箇所に示した各項目の具体的な設定内容で示して頂けると幸いです。

    今、旅行中のため開発やデバッグができないのですが、もしまだ動作がおかしい場合は、サンプル ファイルを圧縮して添付ファイルで送っていただけますか?よろしくお願いします。 [email protected] 時間があるときに調べてまたご報告します。

    サンプルファイルをメールで送付しました。
    ご確認願います。

    #5733
    Yutaka Emura
    キーマスター

    shiiyaさんは書きました:

    Yutakaさんは書きました:
    自動認識というのは、どの設定のことでしょうか? EmEditor の中では自動認識という言葉は使っていません。

    ファイルをダブルクリックして開く時に、EmEditorがエンコードを自動で認識・決定して開いてくれる動作のことを自動認識と書いてしまっていました。
    「自動認識」と書いていた箇所を、EmEditorでの設定項目「開くときのエンコード」で指定している「日本語 (自動選択)」、もしくは「エンコードの自動選択」などと読み替えて頂くと、申し上げたかった趣旨が伝わり易くなるかもしれません。

    [Unicodeサイン(BOM)を検出] をチェックしただけの場合は、BOM無しのファイルは検出できないようになっています。ですからこれは仕様通りの動作になります。

    では、BOM無しのファイルのエンコードの自動選択もうまくいくようにするには、どのような設定の定義にすべきなのでしょうか?
    【脚注2】の箇所に示した各項目の具体的な設定内容で示して頂けると幸いです。

    今、旅行中のため開発やデバッグができないのですが、もしまだ動作がおかしい場合は、サンプル ファイルを圧縮して添付ファイルで送っていただけますか?よろしくお願いします。 [email protected] 時間があるときに調べてまたご報告します。

    サンプルファイルをメールで送付しました。
    ご確認願います。

    メールは受け取りました。ありがとうございます。今すぐにテストできないのですが、以上のご質問への回答です。

    「日本語 (自動選択)」の場合は、Shift JIS、JIS、EUC の中からの選択になるので、Unicode は自動検出できません。「エンコードの自動選択」という項目はありません「すべて自動検出」のことでしょうか?

    BOM 無し UTF-16 のファイルの検出は、「すべて自動検出」にするしかないと思います。

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

    #5734
    yuk
    参加者

    Yutakaさんは書きました:
    メールは受け取りました。ありがとうございます。今すぐにテストできないのですが、以上のご質問への回答です。

    「日本語 (自動選択)」の場合は、Shift JIS、JIS、EUC の中からの選択になるので、Unicode は自動検出できません。「エンコードの自動選択」という項目はありません「すべて自動検出」のことでしょうか?

    BOM 無し UTF-16 のファイルの検出は、「すべて自動検出」にするしかないと思います。

    分かり易くしようとしたつもりでしたが、またEmEditorで使われていない言葉を一部持ち出して分かりにくくしてしまったようで、申し訳ありませんでした。

    結局の所、「日本語 (自動選択)」の場合で、「すべて自動検出」を無効にした場合は、「UTF-16LE (BOM無し)」を自動検出できないということで了解しました。

    ただ、上記のような設定で自動検出できなかった際に読み直しを実行した場合、ファイル内容は正しく表示されるようになりますが、画面右下のエンコード欄を見ると、正しいエンコードで認識されていないという問題があります。(最初の報告の「【不具合1】」で書いている問題です。)

    また、「日本語 (自動選択)」の場合で「すべて自動検出」を有効にした場合、ダブルクリックで開いた時点でファイル内容は正しく表示されるようになりますが、画面右下のエンコード欄を見ると、正しいエンコードで認識されていないという問題があります。(最初の報告の「【不具合2】」で書いている問題です。)

    御旅行から戻られたあとで結構ですので、現象の御確認、そして再現しましたら修正をお願い致します。

    #5804
    Yutaka Emura
    キーマスター

    shiiyaさんは書きました:

    Yutakaさんは書きました:
    メールは受け取りました。ありがとうございます。今すぐにテストできないのですが、以上のご質問への回答です。

    「日本語 (自動選択)」の場合は、Shift JIS、JIS、EUC の中からの選択になるので、Unicode は自動検出できません。「エンコードの自動選択」という項目はありません「すべて自動検出」のことでしょうか?

    BOM 無し UTF-16 のファイルの検出は、「すべて自動検出」にするしかないと思います。

    分かり易くしようとしたつもりでしたが、またEmEditorで使われていない言葉を一部持ち出して分かりにくくしてしまったようで、申し訳ありませんでした。

    結局の所、「日本語 (自動選択)」の場合で、「すべて自動検出」を無効にした場合は、「UTF-16LE (BOM無し)」を自動検出できないということで了解しました。

    ただ、上記のような設定で自動検出できなかった際に読み直しを実行した場合、ファイル内容は正しく表示されるようになりますが、画面右下のエンコード欄を見ると、正しいエンコードで認識されていないという問題があります。(最初の報告の「【不具合1】」で書いている問題です。)

    また、「日本語 (自動選択)」の場合で「すべて自動検出」を有効にした場合、ダブルクリックで開いた時点でファイル内容は正しく表示されるようになりますが、画面右下のエンコード欄を見ると、正しいエンコードで認識されていないという問題があります。(最初の報告の「【不具合2】」で書いている問題です。)

    御旅行から戻られたあとで結構ですので、現象の御確認、そして再現しましたら修正をお願い致します。

    ファイルを送っていただき、ありがとうございました。ステータス バーのエンコードが正しく表示されないという不具合は修正しました。ただし、[Unicodeサイン(BOM)を検出] チェック ボックスをチェックしても、BOM 無し UTF-16 が検出できないという問題は、仕様の通り、このままの状態にしておきます。「Unicodeサイン(BOM)を検出」というのは、あくまでも BOM の検出であって、統計的な検出を含んでいないからです。仕様を変更することも可能ではありますが、現在のところ、このままにしておきます。ご了承ください。

    #5816
    yuk
    参加者

    Yutakaさんは書きました:
    ファイルを送っていただき、ありがとうございました。ステータス バーのエンコードが正しく表示されないという不具合は修正しました。ただし、[Unicodeサイン(BOM)を検出] チェック ボックスをチェックしても、BOM 無し UTF-16 が検出できないという問題は、仕様の通り、このままの状態にしておきます。「Unicodeサイン(BOM)を検出」というのは、あくまでも BOM の検出であって、統計的な検出を含んでいないからです。仕様を変更することも可能ではありますが、現在のところ、このままにしておきます。ご了承ください。

    ステータス バーのエンコードが正しく表示されないという不具合が、7.00.2 RC 1で修正されていることを確認しました。
    また、「Unicodeサイン(BOM)を検出」を有効にした場合でも「UTF-16LE (BOM無し)」を自動検出できないという現象も、仕様ということで了解しました。
    ご対応ありがとうございました。

    #5835
    hiro
    メンバー

    ヤフー検索のキャッシュページからEUC-JPのページを読み込むとUTF-8に変換されているのにEUC-JPで開くので文字化けします、ヤフーのヘッダにと入りますが、なぜEUC-JPで開こうとするのでしょう?

    #5836
    Yutaka Emura
    キーマスター

    hiroさんは書きました:
    ヤフー検索のキャッシュページからEUC-JPのページを読み込むとUTF-8に変換されているのにEUC-JPで開くので文字化けします、ヤフーのヘッダにと入りますが、なぜEUC-JPで開こうとするのでしょう?

    HTML のプロパティの [ファイル] タブで、[HTML/XMLのCharsetを検出] はチェックされているでしょうか? それでもおかしい場合は、サンプル ファイルを Zip にしてメールで送っていただけますか?

1 件の投稿を表示中 (合計 9 個)
  • このトピックに返信するにはログインしてください。