解決済みの質問
さくらのレンタルサーバーを用いて、PHPとSmartyの勉強をしています。 GET送信をsm...
さくらのレンタルサーバーを用いて、PHPとSmartyの勉強をしています。
GET送信をsmartyのテンプレートで表示した場合、
なぜか、文字化けしてしまいます。
【php.ini】
default_charset = "UTF-8"
mbstring.language = "Japanese"
mbstring.internal_encoding = "UTF-8"
mbstring.encoding_translation = Off
mbstring.http_output = "UTF-8"
allow_url_fopen = On
allow_url_include = On
file_uploads = On
include_path=".:/home/hirotopia/pear/PEAR;.:/home/hirotopia/pear/SMARTY/libs"
【phpファイル】
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
require_once("Smarty/libs/Smarty.class.php");
$smarty = new Smarty();
$smarty->template_dir = "template/";
$smarty->compile_dir = "compile/";
$datas = array("name"=>"tarou","age"=>"18","job"=>"学生");
$smarty->assign("datas", $datas);
$get=mb_detect_encoding($_GET["name"]);
$smarty->assign("get", $get);
$smarty->display("user.tpl");
?>
【テンプレートファイル】
{foreach from=$datas name="test" key="key" item="value"}
キー値:{$key}、値:{$value}<br />
{* これはコメントです *}
{foreachelse}
デーがありません。
{/foreach}<br />
入力されたパラメータは {$smarty.get.test|escape}です。
文字のエンコードを調べた結果GET送信は、{$get}みたいです。
{debug output="javascript"}
【上記の実行結果】
http://hirotopia.sakura.ne.jp/smarty01.php?test=%83e%83X%83g
PHPの先生に質問したり、
様々な設定を試みたのですが、
解決できませんでした。
ご教授お願い致します。
- 補足
- GETのパラメータはURLに?=テストと入力しています。
この質問は、活躍中のチエリアンに回答をリクエストしました。
-
- 質問日時:
- 2010/4/6 14:16:02
-
- 解決日時:
- 2010/4/21 03:17:58
-
- 回答数:
- 3
-
- お礼:
- 知恵コイン
- 50枚
-
- 閲覧数:
- 398
-
- ソーシャルブックマークへ投稿:
- Yahoo!ブックマークへ投稿
- はてなブックマークへ投稿
- (ソーシャルブックマークとは)
この質問は投票によってベストアンサーが選ばれました!
- この質問・回答は役に立ちましたか?
- 役に立った!
お役立ち度:
2人が役に立つと評価しています。
ベストアンサー以外の回答
(2件中1〜2件)
- 並べ替え:回答日時の
- 新しい順
- |
- 古い順
t_setjさん
たしかに、開いたページは UTFですが ブラウザの文字コードをsjisにすると テストが表示されるので
部分がsjisかと
貼り付けられたphp,iniで自分もいつだか、やったような気がして
http://memo.xight.org/2007-02-14-1
とかどうでしょうか?
作成側がやってるはず!というなら php.iniの頭5行が、あやしいかな~と思います
mbstring.http_output 文字化け とかで探すと上のがでたのですがほかもどうでしょうか?
また外部サーバを使われてるようですが、 フリーの XAMPPってやつ自分も使ってますが便利ですよ
ローカルで apache、php、が動かせます。
- 違反報告
- 回答日時:2010/4/7 16:43:44

