準・究極の選択

Smartyで作っている携帯用HPに携帯絵文字を表示したくて試行錯誤しているのですが、
絵文字ではなく、文字列が表示されてしまいます。

例えばPHPで
print('') と書くと、ソフトバンクの3G携帯では、男の子の絵が表示されます。

でも、smartyで
$_smarty->assign("emozi",'');
と設定し、
{$emozi}とすると、絵文字ではなく、
 と文字列が表示されてしまいます。

どのようにすればSmartyの{$emozi}に絵文字が表示されるのか
アドバイスお願いいたします。

A 回答 (1件)

default_modifiersあたりで、標準でエスケープするようにしてませんか。


その場合は、HTMLエンティティのようなものもすべてエスケープされてしまうと思います。

その場合は、
{$emozi|smarty:nodefaults}
と記述することでエスケープされないようです。
    • good
    • 0
この回答へのお礼

アドバイスいただきありがとうございます。
ご指摘の方法でも解決しないので、もう一度、じっくり確認したところ、原因がわかりました。

UTF-8で作成したファイルをSJISで表示するため、最後に、
$buffer = $smarty->fetch( 'test.tpl' );
echo mb_convert_encoding( $buffer, 'sjis-win', 'UTF-8' );

と、スマーティのテンプレートの文字コードを変更していたのが原因でした。

試しに、文字コードを変更せずに、そのまま、表示したら、
絵文字は表示されました。

どうもありがとうございました。

お礼日時:2011/06/17 14:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報