こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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扱いされているのが原因なのかとは思うのですが具体的にどう対処すれば良いのかわかりません。

作成した前任者は退社しており、手詰まりになってしまいました。
推測の域でも結構ですので、何かアドバイスいただけますでしょうか。
乱文で申し訳ありませんがよろしくお願いいたします。

投稿日時 - 2008-06-11 13:41:10

QNo.4092129

すぐに回答ほしいです

質問者が選んだベストアンサー

linux上でそのファイルを file(1) コマンドにかけてみるとどうなりますか?  
$ file foobar.php

根拠希薄な全くの想像ですが、コンパイルされたバイナリファイルなんじゃないかしらんと言う気がします。もしELFとかのバイナリなら、元のソースファイルを見付けなければどうしようもないかと思います。
ファイルの種類(内容)によって、ファイル名の最後の部分を決まった文字列にする慣習がありますが、必ずしもそれに従わなくても動作に支障がないことが多々あります。件のファイルをphpファイルだと思っているのは人間だけで、コンピュータは別の実行形式ファイルとしてみているかも知れません。
fileと言うコマンドは「おいらはこのファイルの種類はこれだと思うよぉ」と答えてくれるコマンドです。(たまに勘違いしてるくせに平気な顔していやがりますが。)

要点をハズシていたり、御存じのことでしたらごめんなさい。

投稿日時 - 2008-06-11 16:16:12

お礼

fileコマンドに掛けたところ「PHP script Zend Optimizer data」と表示され、どうやらZend Guardで暗号化された物のようです。
確かにテキストエディタに書けた際に、化けたように見えても「Zend」の文字列がありました。
元のソースファイルが無いので結局編集できないのですが、状況がわかって大変助かりました。
ありがとうございました。

投稿日時 - 2008-06-11 17:43:32

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

バイナリエディタで開いてみて、
記述されている文字コードを確認するところから始められては?

投稿日時 - 2008-06-11 13:58:47

お礼

回答ありがとうございます。
バイナリで見てみましたが、「00H」が見つからず、どこがNullになっているかの判別もつきませんでした。

投稿日時 - 2008-06-11 17:39:59

あなたにオススメの質問