1 件の投稿を表示中 (合計 2 個)
  • 作成者
    投稿
  • #9087
    ksakurai
    メンバー

    EmEditor: Ver 9.16(64bit)

    以下問題のあるPHPファイルをUTF-8(BOM無し) 改行コード=LFで
    保存しています。
    これを、EmEditorで開くと、UTF-8(BOM無し)で検出出来ません。
    このファイルのうち、
    $xmlHead = ‘‘;

    と言う行を削除してUTF-8(BOM無し)保存すると、次に
    EmEditorで開いても正しくUTF-8(BOM無し)と認識できます。

    ソースコードの真ん中の、文字列定義の部分にあるXML宣言が
    判定基準になっているようなのですが何故でしょうか?
    上記部分を
    $xmlHead = ‘‘;
    にすると、EmEditorで「指定したエンコードで変換ができない」と
    言われず、思い通りにUTF-8で開くのですが、、、。

    ご確認ください。

    ————– 問題のあるファイル ——-
    ‘;
    $s = str_replace($xmlHead, ”, $s);
    $s = preg_replace(“/rn/”, ”, $s);
    $s = preg_replace(“/n/”, ”, $s);
    $s = $xmlHead.”rn”.$s;
    }
    echo $s;
    }
    }
    ?>

    #9088
    Yutaka Emura
    キーマスター

    ksakurai 様

    いつも EmEditor Professional をご利用いただき、誠にありがとうございます。

    設定のプロパティの [ファイル] タブで、[HTML/XMLのCharsetを検出] がチェックされていると、文書中に、

    という行があると、その中の encoding= の後のエンコードを読み取って、それに合わせてエンコードを選択するようになっています。

    今回のファイルは、引用符の中にあるため無視するべきですが、ファイルを開く速度を優先するため、厳密な解析を行っているわけではありません。

    このような PHP のファイルを開く場合、HTML/XMLのCharsetを検出が必要なければ、PHPの設定のプロパティの [ファイル] タブで、[HTML/XMLのCharsetを検出] のチェックを外してご利用ください。

    PHP の場合は、このチェックを既定で外すことも検討します。貴重なご意見ありがとうございます。

    他にもご意見、ご質問がございましたら、ご遠慮なくご連絡ください。
    今後もよろしくお願い申し上げます。

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