Smartyの文字化け必須

| | コメント(0) | トラックバック(0)

最近、Smartyの導入の話があり初めて使用しているのですが、テンプレートに{$var}のように中カッコをつけて変換する方法です。これを使うとPHPなのにPerlでテンプレートを使ったページが作成できるので面白いです。

 このタイトルでピンと来た方もいるかも知れませんが、テンプレートの中に「必須」と書き込んだときにエラーを発生してしまいます。これは文字コードがShift-JISの場合に 須 の字の2バイト目が } なので間違った解釈をされてしまうためです。それであれば最初からEUCで作るとか、変換するという手もありますが、クランアントがShift-JISで表示する仕様だったり、特殊文字を使用していてnkf等を利用すると文字欠けや化けを起こす場合はとても悩むと思います。

 フロートタイプの掲示板や携帯電話向けコンテンツはこの部類になりますが、私が行った一番簡単な解決方法は必須という文字が必要な場合は変換必須にするだけ。

 つまり、文字化けを起こすのはPHPではなくSmarty側なのでテンプレート側に必須を書かなければ良い。

index.tpl内に必須の文字があれば具体的にはこのようにする。

必須→{$hissu}

そしてindex.phpにはassainを追加する

$o_Smarty->("hissu","必須");

こんな感じです。

トラックバック(0)

このブログ記事を参照しているブログ一覧: Smartyの文字化け必須

このブログ記事に対するトラックバックURL: http://blog.c-production.com/mt/mt-tb.cgi/151

コメントする

このブログ記事について

このページは、管理人が2006年1月19日 01:52に書いたブログ記事です。

ひとつ前のブログ記事は「東証が全銘柄売買停止」です。

次のブログ記事は「アメリカ産牛肉の輸入停止」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.1