2件の投稿を表示中 - 1 - 2件目 (全2件中)
  • 投稿者
    投稿
  • #9087

    ksakurai
    メンバー

    EmEditor: Ver 9.16(64bit)

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

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

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

    ご確認ください。

    ————– 問題のあるファイル ——-
    < ?php class CTest { public function display($s, $flag) { // フラグがfalseの時はxml宣言と改行コードを消す if(!$flag) { $xmlHead = '‘;
    $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 の場合は、このチェックを既定で外すことも検討します。貴重なご意見ありがとうございます。

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

2件の投稿を表示中 - 1 - 2件目 (全2件中)

このトピックに返信するにはログインが必要です。

友達に知らせる... Tweet about this on TwitterShare on FacebookShare on Google+Email this to someone