- ベストアンサー
linuxでphpファイルが文字化け
はじめまして。 linux(FedoraCore3)にphpファイルをアップして会社内のWebツールを提供しています。今度、Webツールの改修の必要があるのですが、linux上のphpファイルが文字化けして編集することができません。 linux上でviエディタで開いた場合も、FFFTPでWindowsマシンに落としてからテキストエディタで開いた場合も、文字化けしています。 (FFFTPはアスキー転送/バイナリ転送の両方を試してみました。) (テキストエディタは秀丸とEmEditorでEUC/UTF-8/jisなど全文字コードを試してみました。) 文字化けは日本語の部分に限らず、全体的に化けています。 また、EmEditorで開くと「ファイルに含まれていたNull文字(00H)は、スペースに変換して開きます。」とメッセージが出ます。 linux上ではWebツールとして正常に動作するのに、エディタで開いたときだけ化けてしまうのは何故でしょうか? ファイル内の「00H」の文字がNull扱いされているのが原因なのかとは思うのですが具体的にどう対処すれば良いのかわかりません。 作成した前任者は退社しており、手詰まりになってしまいました。 推測の域でも結構ですので、何かアドバイスいただけますでしょうか。 乱文で申し訳ありませんがよろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
linux上でそのファイルを file(1) コマンドにかけてみるとどうなりますか? $ file foobar.php 根拠希薄な全くの想像ですが、コンパイルされたバイナリファイルなんじゃないかしらんと言う気がします。もしELFとかのバイナリなら、元のソースファイルを見付けなければどうしようもないかと思います。 ファイルの種類(内容)によって、ファイル名の最後の部分を決まった文字列にする慣習がありますが、必ずしもそれに従わなくても動作に支障がないことが多々あります。件のファイルをphpファイルだと思っているのは人間だけで、コンピュータは別の実行形式ファイルとしてみているかも知れません。 fileと言うコマンドは「おいらはこのファイルの種類はこれだと思うよぉ」と答えてくれるコマンドです。(たまに勘違いしてるくせに平気な顔していやがりますが。) 要点をハズシていたり、御存じのことでしたらごめんなさい。
その他の回答 (1)
バイナリエディタで開いてみて、 記述されている文字コードを確認するところから始められては?
お礼
回答ありがとうございます。 バイナリで見てみましたが、「00H」が見つからず、どこがNullになっているかの判別もつきませんでした。
お礼
fileコマンドに掛けたところ「PHP script Zend Optimizer data」と表示され、どうやらZend Guardで暗号化された物のようです。 確かにテキストエディタに書けた際に、化けたように見えても「Zend」の文字列がありました。 元のソースファイルが無いので結局編集できないのですが、状況がわかって大変助かりました。 ありがとうございました。