[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 メーリングリストの案内