サーバーで実行されるPHPやJavascriptなどをテキストエディタで作成するとき、テキストのエンコードはUTF-8でなければいけないというのは当然です。
ただし、日本語を含めたコードを作成するときは単にUTF-8であればいいかというと、そういうわけではありません。
今回はそんな注意点です。
BOMの有無で日本語が正しく表示されるか決まる
テキストファイルにはそのテキストファイルのエンコードを示すためにファイルの先頭に不可視文字としてバイトオーダーマーク(BOM)が付いていることがあります。
いろいろな歴史があるのですが、通常UTF-8ではこのBOMは付いていないのが普通です。
しかし、日本語入力の可能なほとんどのテキストエディタではUTF-8を選択するとBOMが付いている状態でファイルが保存されます。
このままサーバー環境に移してプログラムを実行すると、日本語が文字化けして読めない現象が起こります。
これを回避するためには、BOMを付けずにUTF-8エンコーディングで保存する必要があります。
UTF-8とUTF-8Nの違い
通常UTF-8ではBOMはないと言いましたが、テキストエディタのエンコーディングを見ると、UTF-8とUTF-8Nの2種類あることに気づきます。
特にTerapadなどを利用していれば見かけたことがあると思います。
この場合はUTF-8を選択するとBOM有りでファイルに出力され、UTF-8Nを選択するとBOM無しでファイルに出力されます。
UTF-8は基本的にBOMのない状態が普通なので、もしエンコーディングを確認してUTF-8Nがあれば、そちらを標準設定にしておくと、サーバー環境でつまずくことが少なくなるでしょう。
テキストエディタによっては、「バイト順マークなし」や「BOMなし」と記載されている場合もあります。
自分の使っているテキストエディタの標準設定を確認してみてください。