[要望]自動付加される3バイト

  1. こんにちは
    使いやすさが気に入って、ずっとMeryを使わせていただいてます

    つい最近PHPを始めてみたのですが、表示結果に変なスペースが入ってしまう謎の不具合があり
    とある質問掲示板にて原因の相談をしてみると
    --------------------------------------------------------------------------------------------------------------------------------------------
    環境についての説明がないので予想でしかないけど。

    page.php及びheader.html(または全てのファイル)をWindowsのメモ帳にてUTF-8として保存したという可能性。
    メモ帳がUTF-8において(暗黙のうちに)付加する先頭3バイトのBOM (EF BB BF)の影響によると思われる。

    通常のBOMが1度現われるだけならIEでもFFでもデザインに影響はないようだけど、
    連続して出現した場合にブラウザ上では改行表示されてしまうみたい。

    page.phpとheader.htmlの両方がBOM付きだった場合、
    page.php自身のBOMとincludeしたheader.htmlのBOMが連続して先頭に出力されるため
    デザインが崩れるという解釈。
    (先頭6バイトがEF BB BF EF BB BFであるということ。)

    なので、メモ帳を使っている場合はPHP Editorや、その他のUTF-8にてBOMを付加しないエディタにて再保存すれば
    解決するのではないかと思う
    --------------------------------------------------------------------------------------------------------------------------------------------
    という返答があり、エディタを変えて試してみたところすんなり解消されました…

    エディタを変えれば済む話なのかも知れませんが、私としてはMeryを使い続けたいなぁと思い、
    書き込みさせていただきました

    テストに使ったのは1.0.4.1807と、今日までの最新版であった1.0.12.2542で
    その問題が解消されたエディタはhttp://phpspot.net/php/phpeditor.htmlのPHPエディタです

     |  akane*  |  返信
  2. 作者さんは忙しそうなので代わりに。

    PHPの事は全然知らないので全部推測です。

    確かにメモ帳では、UTF8で保存した時に先頭に EF BB BF が勝手に付加されてしまうようです。
    しかしMeryでは UTF-8,BOM無 で保存すれば EF BB BF は付加されないはずです。
    (念のためMery 1.0.12.2542で UTF-8, BOM無 で保存し、確認しましたが、大丈夫でした。)

    もし UTF-8, BOM有 の方で保存しているなら UTF-8, BOM無 の方で保存してみてください。

    >エディタを変えて試してみたところすんなり解消されました…
    この件も推測になってしまいますが、おそらくPHPエディタはその問題を考慮して初期状態でBOM無しの方で保存されるようになっているんだと思います。

     |  N  |  返信