- ベストアンサー
検索結果の文字化けが問題になっています
- PHPにてDB(MySQL)からのデータを検索する際、検索結果の一部が文字化けしてしまいます。
- 問題はレンタルサーバー上でのみ発生し、開発環境では正常に表示されます。
- 文字化けした場合、ブラウザの更新を行うと一時的に修正されることもありますが、根本的な解決策がわかりません。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
header()は下記のような使い方です。 header("Content-Type: text/html;charset=EUC-JP"); mb_strimwidthで化けているならdetect_orderあたりの設定を見た方がいいんでしょうか。 処理する情報量が少ないとmb関数も失敗します。 抽象的ですが、文字化けの時に私が確認することは、 ・PHPで化ける マルチバイト関連の設定 mbstring.language mbstring.internal_encoding mbstring.http_input mbstring.http_output mbstring.encoding_translation mbstring.detect_order output_handler ・MySQLからの取得で化ける 4.3以降ぐらい?なら接続時にエンコーディングを指定する。 set character set utf8 ・ブラウザで化ける ブラウザの文字コード指定で直るものならheader()や<meta>で指定。 header()を出力する前に何も出力しない。 以上、参考までに。
その他の回答 (2)
- taaaaaaa
- ベストアンサー率38% (31/80)
レンタルサーバの利用条件を調べてみることオススメします。 PHPの場合、その会社によって利用環境が異なるようです。 コードは、EUCのみ、拡張子は、.cgiとすること、ヘッダーには、、、を含むこと、など。 レンタルサーバは色々と制約があり、それに合わせて使わないといけない場合が多いです。
お礼
taaaaaaaさま はじめまして、こんばんは。 貴重なアドバイスを有難う御座います。 レンタルサーバーによって違うというのは聞いてはいましたが、そもそも私がPHPを始めた際、書籍の手順に沿って設定を行っただけ(localににて開発を前提の内容)…と、お恥ずかしい限りでは御座いますが、このようなところから、その違った際の対処に困っているところです。何をどうしたら良いのかが判らない・・。 localおよびサーバー上で、phpinfo()を見比べているのですが…。
- tany180sx
- ベストアンサー率63% (239/379)
> ブラウザの更新を行うと、直ったり出たりしている状況です。 ということならheader()や<meta>で文字コードを指定したら直りそうな気も。
お礼
tany180sxさま こんばんは。お世話になっております。 ご報告も兼ねてと思い、ご挨拶が遅くなってしまった事をお許し下さい。 ><meta>で文字コードを指定 こちらに関しては既に指定しておりますが、header()は只今調べているところです。なかなか上手く行かないのですが・・。 で、状況を確認しながら作業をしているのですが、通常、ブラウザの「表示」にあるエンコードは「自動表示」になっているのですが、文字化けのときは、エンコードが自動選択になって居ない事に気が付きました。 header()に関しては調べてはいるものの、なかなか上手くいかず、引き続きアドバイスなどいただけたら幸いに思います。 お忙しい中恐縮ですが宜しくお願い申し上げます。
お礼
tany180sxさま おはよう御座います。事細かなアドバイスを有難う御座います! 今回、header()の設置により、文字化けは解消されたようです。 特に文字コードに関する設定?など、PHPを触り始めて書籍に紹介されていた初めの設定のみで行ってきたので、今回の文字化けには、正直、どこから手を付けて良いのか・・・といった感じでしたので、今回のようにいくつかの「調べるべきところ」の提示に、非常にありがたく思っております。有難う御座いました!