PHPファイルの文字化け対策方法とは?

このQ&Aのポイント
  • Linux CentOS3でのPHPファイル文字化け問題について解説します。Windows上でEUC文字コードで保存したPHPファイルをLinuxサーバにアップロードしても文字化けしてしまう場合の対策方法を紹介します。
  • InternetExplorerでPHPファイルを閲覧した際に文字化けしないような設定方法について解説します。文字コードを「EUC」に変更することで文字列が正しく表示されることを紹介します。
  • LinuxやWindowsの文字コード設定によって、PHPファイルが文字化けしてしまうことがあります。この問題を解決するための手順や設定方法について詳しく説明します。
回答を見る
  • ベストアンサー

PHPファイル文字化けについて

linux CentOS3(RedHat Enterprise3)を利用しています。 linuxは文字コードがEUCと認識しております。 そこでwindows上にてPHPファイルを作成、文字コードEUCにて保存し、 ffftpにてlinuxサーバにアップロードし、webページを参照してみました。 PHPファイルは以下の通りです。 <?php echo "こんにちは"; ?> 結果、InternetExplorerを利用し閲覧したところ文字化けにて表示されます。 文字コードは「UTF-8」が選択されています。 もちろん、文字コードを「EUC」に変更すると、 出力されてほしい文字列が表示されます。 これをInternetExplorerにて表示したとき、 文字化けしないような設定に変更したいと考えます。 どのような手順を踏めばよろしいのでしょうか? よろしくお願いします。

  • PHP
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
回答No.1

header('Content-Type:text/html; charset=EUC-JP'); を宣言する。

it2007
質問者

お礼

ご連絡が遅くなりまして申し訳ございません。 教えて頂いた手法にて正常に文字列が参照できること、 確認しました。 このたびはどうもありがとうございました。

関連するQ&A

  • 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扱いされているのが原因なのかとは思うのですが具体的にどう対処すれば良いのかわかりません。 作成した前任者は退社しており、手詰まりになってしまいました。 推測の域でも結構ですので、何かアドバイスいただけますでしょうか。 乱文で申し訳ありませんがよろしくお願いいたします。

  • html + php 文字化けの問題【utf-8】

    文字化けが直りません。どうしたらいいでしょうか? phpとmysqlをつかってデータベース表示させるページなのですが、データベースの文字コードがutf-8なのでphpファイルの文字コードをeucからutf-8に変更しました。そうするとデータベースは正常に表示されるのですが、htmlの部分は全て「?」になってしまいます。 文字コードの変換はEmEditorで変更し、変化が見られなかったので、変換用のフリーソフトを使ってみましたが、やっぱり文字化けの状態です。どなたかご教授ください。お願いします。

    • 締切済み
    • PHP
  • PHPで文字化けします

    PHPでリンク集を登録、表示するプログラムを考えています。 登録、削除などは出来るのですが、表示部分が文字化けします。 登録内容をcsvに保存して、PHPから読み込んで表示する仕組みなのですが、csvから読み込む部分以外は正常に表示されますが、csvから読み込んだ部分が文字化けします。 サーバーは共用なので、管理者に問い合わせた所、サーバの通常文字コードはUTF-8との事、.htaccess ファイルで EUCへの変換方法を教えてもらったので、試しましたが、csv内に登録した時点で、文字化けした状態で記録されているようで、PHPファイルをsjisにして試しても、EUCにして試しても結果が同じです。 フォームからcsvに登録する時の文字コードを設定したりはできないのでしょうか。 また、公開されているスクリプトで相互リンク登録が出来るようなプログラムをご存知であれば、お教えください。

    • 締切済み
    • PHP
  • phpのソースによって、文字化けしてしまいます

    お世話になっております。 PHPとMySQLを利用しております。php.iniでPHP 、my.cnfでMySQL、それぞれの文字コードを「日本語EUC」に設定し、問題なく動作しております。 ただ、PHPスクリプトのソースコードが日本語EUCでない場合、出力結果が???????のように文字化けしてしまいます。 PHPスクリプトのソースの文字コードが、日本語EUCであっても、シフトJISであっても文字化けしないようにするには、どのように設定したらよいでしょうか。 初心者であり、困っております。 どなたか、お助けいただくことはできますでしょうか。 どうか、よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • PHP+MYSQLでの文字コードによる文字化け

    お世話になっております。 PHP+MYSQLの構成でDBに登録、DBから参照→表示といったアプリケーションを作っているのですが質問があります。 文字コードを意識せずに、”Shift-JIS”でPHPやhtmlのコードを書いていたのですが、仕様上問題があることに気づいたので今まで書いたソースの文字コードを”EUC-JP”に変更することになりました。 フリーで複数のテキストファイルをShift-JIS→EUCに一括変換するソフトがあるので、そのソフトを使ってEUCの文字コードに変換したところ、ソース中の日本語(全角)が文字化けしてしまいました。 #どの変換ソフトを使っても同様の結果になります ブラウザー上で表示すると問題ありませんが、今後ソースをいじるときに非常に不便です。目的としては、「ソースの文字コードをShift-JISに変換」かつ「ソース内の日本語(全角)の文字化けを起こさない」方法をご存知の方は是非ご教授お願い致します。

    • ベストアンサー
    • MySQL
  • PHP+MySQLで文字化け

    DBからデータを持ってきてPHPで表示させると文字化けしてしまいます。 PHPはEUC-JPです。 mb_convert_encoding($message, "EUC-JP")としてみても文字化けしてしまいます。 どなたか対処方法教えていただけたら嬉しいです。

    • 締切済み
    • PHP
  • htmlが文字化け

    掲題の件について質問させて頂きます。 linuxサーバ(CentOs5)を立ち上げて、apacheをインストールし、DocRootにhtmlファイルをFFFTPにてアップロードした所、文字化けが発生してしまいました。(画面が真っ白になります) 【環境】 Server: Apache/2.2.6 (Unix) mod_ssl/2.2.6 or_log PHP/5.1.6 【アップロードしたファイル内容】 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP"> <title>ここにタイトルを挿入</title> </head> <body> <form method="post" action="input_check.php" name="input_check"> <input type"text" name="name">お名前: <input type"text" name="furigana">ふりがな: <input type="submit" name="send" value="submit"> </form> </body> </html> ファイルはEUC-JPにて記述しています。 以下試した点をあげてみます。 1. charsetをShift_JISに変更。 ⇒ファイルがEUC_JPで書かれているので当然文字化け。ですが文字化けされた文字は表示されました。(画面が真っ白ではないです。) 2. apacheのhttpd.confのAddDefaultCharsetをコメントアウト ⇒(というよりデフォルトで設定されていませんでした。) 他に何か怪しまれる点はありますでしょうか? 以上宜しくお願い致します。

  • PHPの文字化け

    PHP4.3、Apache2.0.46を利用しています。 htmlタグ内でのテキストは正しく表示されるのですが returnやechoなどで表示させると文字化けしてしまいます。 PHPのスクリプトは全てEUCで記述されています。 化け方は、例を挙げると ※入力されたID、パスワードが正しくありません。 ↓ ※ュID鴻・若罩c障 のようになります。 php.iniの文字コードまわりの設定は output_buffering = Off magic_quotes_gpc = Off mbstring.http_output = EUC-JP mbstring.encoding_translation = On mbstring.detect_order = auto mbstring.substitute_character = none となっています。 どうかお知恵をお貸しくださいませ。

    • 締切済み
    • PHP
  • 【Redhat】SJISにおける文字化け

    OS:Redhat Linux ES 4.6 文字コードをSJISにしてファイルを表示しますと、特定の日本語文字(例えば、II)が 文字化けしてしまいます。 何が原因なのでしょうか。。。

  • SmartyでXMLの読み込みデータが文字化け

    今まで使っていたサーバーのプランが古くて容量が少ないため、同じレンタルサーバーでプランUPしました。 ただそのプランは旧プランと仕様が下記のように変わっています。 【PHP】 旧プラン:PHP4 → 新プラン:PHP5 【文字コード】 旧プラン:EUC-JP → 新プラン:UTF-8 【データベース】 旧プラン:MySQL4.1 → 新プラン:MySQL5 【データベース文字コード】 旧プラン:EUC-JP → 新プラン:UTF-8 文字コードがUTF-8になったため、それに合わせてページの文字コード等を変更したのですが、 一部Smartyで作られるページがあり、そのページの文字化けだけがどうしても解決できません。 そのページはPHPファイル、tplファイル、xmlファイルの3ファイル使っています。 各ファイルはテキストエディタでUTF-8に変換し、tplファイルにある表示される文字は文字化けしません。 ただxmlファイルから読み込むデータが、すべて「?」マークの文字化けをしてしまいます。 念のため、ここだけEUC-JPのまま、つまり何も変更をしない状態にしても同じ「?」マークの文字化けをしてしまいます。 他のファイルも見てみたのですが、文字コードらしい要素が見当たらず(もしくは気づかない)原因がわかりません。 Smartyはまだよくわからなくて、このシステムを作った前々任者とも連絡がとれないので、どうすればいいのか困っています。 どうか宜しくお願いします。

    • 締切済み
    • XML

専門家に質問してみよう