mb_structを使用したときの文字化け

Smartyで、文字を丸めるSmarty_modifier_mbtruncateというのを使用していたのですが、mb_structとマルチバイドのはずなのに語尾が文字化けして四角二つとかになっちゃうことがありました。

なぜかなと思いながら、他の方が作成されたSmarty_modifier_mbtruncateのコードを探していると、文字コード指定をすると直るらしい。

前に見たブログ記事が見つからなくなっちゃったので、こちらでも同じように書いていただいてるのリンク

続・Smarty truncateをマルチバイト対応に – こまちドーナツ

ちなみに私の使用しているコードはこちら

<?php
function Smarty_modifier_mbtruncate($string, $length=80, $etc=’…’, $break_words = false){
ツꀀ
ツꀀツꀀツꀀ if ($length == 0)
ツꀀツꀀツꀀツꀀツꀀツꀀツꀀ return ”;

ツꀀツꀀツꀀ if (strlen($string) > $length) {
ツꀀツꀀツꀀツꀀツꀀツꀀツꀀ $length -= strlen($etc);ツꀀ
ツꀀツꀀツꀀツꀀツꀀツꀀツꀀ if (!$break_words)
ツꀀツꀀツꀀツꀀツꀀツꀀツꀀ return mb_strcut($string, 0, $length,”UTF-8″).$etc;
ツꀀツꀀツꀀ } else
ツꀀツꀀツꀀツꀀツꀀツꀀツꀀ return $string;
}

?>


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です