• 締切済み

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はまだよくわからなくて、このシステムを作った前々任者とも連絡がとれないので、どうすればいいのか困っています。 どうか宜しくお願いします。

みんなの回答

  • dscripty
  • ベストアンサー率51% (166/325)
回答No.2

一点だけ最後に確認して、問題なければ、 [通報する] から運営に連絡して、カテゴリを PHP に変えてもらったほうがいいかも。 確認点。 <?xml で始まる XML ファイルの初めの行の encoding="..." は、なんて書いてある? もし、"UTF-8" か "utf-8" じゃなければ、"UTF-8" に書き換える。 もともと、"UTF-8" なら、 Smarty の tplファイルを読み込んで、テンプレートロジックに渡す PHP 部分か、 そうじゃなければ、もしかすると、 XML は Smarty じゃ無くて JavaScript で読み込んでるのかも。 PHP の出力結果の HTML ファイルに XML ファイルの内容が反映されてるかどうかで、 JavaScript で読み込んでるかどうかわかるから、 ウェブブラウザでページを開いて、 右クリックして、 メニューから [ページのソースを表示(V)] を選択して、 PHP で出力された HTML のソースを開いて、 その中に、XML の内容が記述されていたら Smarty その中に、XML の内容が記述されていないなら JavaScript。 。。。かな?

  • dscripty
  • ベストアンサー率51% (166/325)
回答No.1

XML ファイルの 『<?xml 』から、初めの要素(ルート要素)の開始タグまで書くといいかも。 それを見れば、XML ファイルの問題か、それ以外かの切り分けはできるとおもう。

eos1941
質問者

お礼

回答ありがとうございます。 XMLファイル自体には問題はなさそうなんです。旧プランでは問題なくつかえていますので。 たぶんどこかで文字コードの設定を変更か追加なんでしょうが、それが全くわからないんです。