質問: お世話になります。 windows環境でPHP、MySQLを使ったウェブアプリをよく作っております。(サイトの運営はレンタルサーバー) エディタで設定している文字コードは通常UTF8であることが殆どです。 お恥ずかしいことか、これまで気にしたことなかったのですが、FTPでウェブサーバーにアップするときは、「ファイル名で転送モードに切り替え」、そして「ローカルの漢字コードはShift_JIS」になっていることに気付きました。 この設定で問題が起きなことはありませんが、これに不安を抱き調べてみると、現在は、「バイナリーモードで転送し、改行コードはLFにする」と明言しているのを拝見しました。 しかし、自分の現在の設定は自動で切り替わる?「ファイル名で転送モードに切り替え」という設定となっており、またファイルの改行コードを確認すると、 多くのHTMLが伴うHPファイルは、LFとなっており、デザインが伴わないPHPファイルはCR+LFの設定となっています。 大変お恥ずかし話ですが、文字コードは意識するようしていたのですが、この改行コードは意識したことなく、正直にお話しすると、現在の改行コードの設定は気づいたらこうなっていた。という状況です。 以上が現状ですが、今後意識して気を付けたいと思いますが、現在の問題点、そして今後統一すべき設定、そして現在の設定を直す際に注意すべき点をお教えいただけますでしょうか? お忙しい中恐縮いたします。 よろしくお願いいたします。
回答: 環境の記述が無いですが、アップロード先のOSがUnix/Linuxで、文字エンコーディングとしてUTF-8であることを前提に回答します。 案1: Windowsで編集するときから、文字エンコーディングはUTF-8、改行コードはLFに統一しておく。 FTPはバイナリーモード固定で行う。 案2: Windowsでの編集は改行コードをWindows標準のCRLFにしておく。文字エンコーディングはUTF-8。 FTPはテキストファイルについては、テキストモードでサーバー側w改行コードはLFにする。 バイナリーファイルはバイナリーモードにする。 案2の2: FTPソフトが文字エンコーディング変換の機能も持っている場合は、Windowsでの編集時にはシフトJISで、FTPソフトにUTF-8に変換させても良い。