Written by MT

最近行ったリニューアル案件で、躓いた事例があったのでご紹介します。

phpファイルが文字化けする

サイトを一通り構築し自社のテストサーバーでチェックの上、本サーバーのテストフォルダにアップしてみると、システム部分が文字化けを起こしました。
文字コードは全てutf-8で書いてますが、htmlファイルは問題なく、どうもphpファイルに限り文字化けしてしまうようでした。

ちなみに、自社のテスト環境では問題ありませんでした。
サーバーが原因でしょうか?

サーバーのphpがeuc-jpに固定されていた

どうもこのサーバーではeuc-jpでしかphpが正常に動かないようでした。
今時そんなサーバーがあるんですね。

サーバーのコンパネとかで変更できるものなのかな?と思い、クライアントにコンパネ情報を聞いてみましたが、わからなかったのかサーバー会社に問い合わせたようでその回答がこちら。

「弊社のホスティングサービスではコントロールパネルといった機能はございません。
その他サーバについて必要な情報等がございましたらご連絡いただきますようお願い申し上げます。」

なんやて…

一応聞いてみた

文字コードについて直接サーバー会社に聞いてみたところ、やはり「うちはEUCです」という強気の回答。
utf-8を使いたいんですけどねーと言ってみると、「ゆーてぃーえふ…ですか…?」とよくわからない様子。
あ、もういいです。

サーバーが変わらないのならphpファイルの文字コードを全部変更していけばいいんでしょうが、この時点ではまだWordpressを導入するかもという話も出ていた為、さすがに非現実的。

.htaccessで対応

調べてみると同じような現象で悩んでいる人が居るようでした。
解決方法としてはPHPの文字コードを指定する記述を.htaccessに書けるようで、下記の記述を.htaccessに足す事によってphpファイルをutf-8で動作させることに成功しました。

php.iniに書く方法もあるようですが、php.iniを自由に設置できるサーバーでは無かった為に、そちらは試していません。

まとめ

一つ、ここから得られる教訓があります。
「文字化けは.htaccessで対応!」ではありません。
そう、「ちゃんとしたサーバーを借りよう!」という事ですよね。

ちなみにこのサーバーは他にもGD(PHPで画像を処理するためのライブラリ)がjpgに対応していないという事象があり、システムでjpgをアップしてphpでリサイズファイルを作ろうとするとエラーが出ました。
とほほ…

以前も別のサイトで、プロバイダの無料スペースで数年運営した後、ニューアルの際にWordpressを入れるためにサーバー移管を行ったものの、前のサーバーでは.htaccessはおろかphpすら動かず301リダイレクトが出来なかったという悲しい事例もあります。

はじめは一見問題無くても、変なサーバーを借りると後々困ることがあるので皆さんご注意を。
わからない場合は制作会社に聞いてください。ほんとに。

blog top

Webに関するお問い合わせ、
ご相談はこちら。