• ベストアンサー

Smartyで携帯絵文字を表示する方法

Smartyで作っている携帯用HPに携帯絵文字を表示したくて試行錯誤しているのですが、 絵文字ではなく、文字列が表示されてしまいます。 例えばPHPで print('') と書くと、ソフトバンクの3G携帯では、男の子の絵が表示されます。 でも、smartyで $_smarty->assign("emozi",''); と設定し、 {$emozi}とすると、絵文字ではなく、  と文字列が表示されてしまいます。 どのようにすればSmartyの{$emozi}に絵文字が表示されるのか アドバイスお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

default_modifiersあたりで、標準でエスケープするようにしてませんか。 その場合は、HTMLエンティティのようなものもすべてエスケープされてしまうと思います。 その場合は、 {$emozi|smarty:nodefaults} と記述することでエスケープされないようです。

yorkies
質問者

お礼

アドバイスいただきありがとうございます。 ご指摘の方法でも解決しないので、もう一度、じっくり確認したところ、原因がわかりました。 UTF-8で作成したファイルをSJISで表示するため、最後に、 $buffer = $smarty->fetch( 'test.tpl' ); echo mb_convert_encoding( $buffer, 'sjis-win', 'UTF-8' ); と、スマーティのテンプレートの文字コードを変更していたのが原因でした。 試しに、文字コードを変更せずに、そのまま、表示したら、 絵文字は表示されました。 どうもありがとうございました。

関連するQ&A