Smartyのtruncateマルチバイト文字列に対応していません。 カットされた位置によっては文字化けしてしまいます。 日本語もキレイに指定文字数でカットしたいなら マルチバイト対応のtruncateを作っちゃいましょう。 function smarty_modifier_mb_truncate($string, $length = 80, $etc = '...') { if ($length == 0) {return '';} if (mb_strlen($string) > $length) { return mb_substr($string, 0, $length).$etc; } else { return $string; } } このソースをmodifier.mb_truncate.phpというファイル名で Smartyのpluginディレクトリ”Smarty/libs