ローカルの Windows マシンで開発した PHP プログラムを Linux サーバーにアップロードした後、ブラウザ経由で対応するインターフェイスにアクセスしたところ、返されたデータの前に不可解な文字「-」があることに気づき、非常に困惑しました。その後、ネットワーク パケット キャプチャを通じて、インターフェイスがデータを返す前にさらに多くの EF BB BF が存在することがわかりました。このようなバグが明確な理由もなく発生するのは、常に非常にイライラさせられます。何度か試しても解決できませんでしたが、漠然と文字コードの問題ではないかと思い、PHPStormを使って新しいファイルを作成し、以前バグっていたファイルの内容を書き換えました(幸いなことに、大きすぎませんでした。svn を使用している場合は、ファイルを以前のバグのないバージョンにロールバックしてから、再度アップロードする必要があります。問題は実際に解決されました。理由を掘り下げることなく、喜んであきらめました。 Gさんは当初バグは解消されたと思っていたのですが、その後またバグに遭遇してしまい、耐えられなくなってしまいました。今回は、コードはローカル マシン上で変更されず、サーバーに再アップロードされます。代わりに、コードは vim を使用してサーバー上で直接開かれ、1 行ずつ表示されます。その結果、vim ファイルのヘッダーに余分な「
ここでは、まず utf8、utf16、および utf32 エンコーディングについて説明します。このエンコーディングは複数のバイトに対応するため、通常、utf16 と utf32 は内部エンコードされた単語を識別するために BOM (バイト オーダー マーク) を使用します。エンディアン (ビッグ/リトル エンディアン)、および utf8 は、BOM の有無にかかわらず追加できます。一般に、使用するエディターの utf8 エンコードでは BOM 識別子は追加されませんが、Windows のメモ帳では utf8 でエンコードされたファイルの前に BOM 識別子が追加されます。この BOM ロゴは、Linux 環境で vim を開いた後に表示される
PS: utf8 でエンコードされたコードを開いたり編集したりするのにメモ帳を使用することは減らした方が良いです。これは大変な教訓です。 ! !
著作権声明: この記事はブロガーによるオリジナルの記事であり、ブロガーの許可なく複製することはできません。上記は、Xiaotan Vim によって開かれたファイルの先頭にある
を、関連する内容も含めて紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。