ここから本文です

解決済みの質問

知恵コレに追加する

さくらのレンタルサーバーを用いて、PHPとSmartyの勉強をしています。 GET送信をsm...

tradeshiroさん

さくらのレンタルサーバーを用いて、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に?=テストと入力しています。

この質問は、活躍中のチエリアンに回答をリクエストしました。

違反報告

ベストアンサーに選ばれた回答

hot_otanさん

GET値のエンコーディングはSJISっぽいですよね。
GETを送ったファイルが書いてないですけど、ちゃんとUTF8になってますでしょうか?

PS
そのURLが書いてあるファイルがSJISで保存されてると、上のような結果なりますよ

  • 違反報告
  • 編集日時:2010/4/6 15:07:12
  • 回答日時:2010/4/6 14:42:42

この質問は投票によってベストアンサーが選ばれました!

この質問・回答は役に立ちましたか?
役に立った!

お役立ち度:お役立ち度 2点(5点満点中)2人が役に立つと評価しています。

ベストアンサー以外の回答

(2件中1〜2件)

並べ替え:回答日時の
新しい順
古い順

 

isorooterさん

{$smarty.get.test|escape|urlencode>じゃダメですか?

t_setjさん

たしかに、開いたページは UTFですが ブラウザの文字コードをsjisにすると テストが表示されるので
部分がsjisかと

貼り付けられたphp,iniで自分もいつだか、やったような気がして

http://memo.xight.org/2007-02-14-1
とかどうでしょうか?

作成側がやってるはず!というなら php.iniの頭5行が、あやしいかな~と思います

mbstring.http_output 文字化け とかで探すと上のがでたのですがほかもどうでしょうか?

また外部サーバを使われてるようですが、 フリーの XAMPPってやつ自分も使ってますが便利ですよ
ローカルで apache、php、が動かせます。

この質問に付けられたタグ

タグとは

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。

お客様自身の責任と判断で、ご利用ください。

話題のキーワード

[カテゴリ:PHP]

ただいまの回答者

02時16分現在

2246
人が回答!!

1時間以内に4,206件の回答が寄せられています。

>>回答ひろばに行く