[PHP-users 23541]mb_strimwidth と utf-8
Makoto Banba
banban @ chuo-gr.co.jp
2004年 11月 4日 (木) 21:08:15 JST
番場と申します。
utf-8 のテキストをバイト単位で丸めるのに下記のようにしてみました。
mb_internal_encoding("UTF-8");
echo mb_strimwidth('あいうえおかきくけこ',0,13,'...','UTF-8');
これが返す結果が下記のようになってしまいます。「」除く
「あいうえお...」
utf-8 なので、全角部分は 3 文字で、期待値としては、
「あいう...」
が戻って欲しいと思います。
他の長い文字を使って試しても全角文字を 2 バイトとカウントしている
ようです。
ちなみに
echo strlen('あいうえおかきくけこ'); => 30
echo mb_strwidth('あいうえおかきくけこ','UTF-8'); => 20
という結果を返します。
utf-8 を丸めるにはどうしたらよいでしょうか?
PHP 4.3.3
--
番場
PHP-users メーリングリストの案内