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

締切り済みの質問

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

どうか宜しくお願いします。

投稿日時 - 2012-06-11 12:17:35

QNo.7527019

すぐに回答ほしいです

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

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

回答(2)

ANo.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。

。。。かな?

投稿日時 - 2012-06-15 16:57:35

ANo.1

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

投稿日時 - 2012-06-14 13:09:39

お礼

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

投稿日時 - 2012-06-15 15:55:12

あなたにオススメの質問