[PHP-users 23544]Re: mb_strimwidth と utf-8
Makoto Banba
banban @ chuo-gr.co.jp
2004年 11月 5日 (金) 09:38:07 JST
番場です。
マニュアルを注意深く読むと、
http://www.php.net/manual/ja/function.mb-strwidth.php
「マルチバイト文字はシングルバイト文字の倍の幅となります」
という記述のとおり、バイト単位で戻す関数では無いようです。
> echo strlen('あいうえおかきくけこ'); => 30
> echo mb_strwidth('あいうえおかきくけこ','UTF-8'); => 20
なので、これは正しいように思います。
やりたいことは、UTF-8 の PostgreSQL DB の varchar(256)
に、ぎりぎりで切り捨てた文字列を入れたいというもので、
マルチバイトの半端なバイトが入らないようにしたいと思って
います。省略した証の「...」も必要。
ですから、mb_strimwidth のバイト単位版があれば良いという
ことですね。この関数は、見た目の幅を整える表示用に使うの
だと思います。
どなたか、UTF-8 の文字列をバイト単位で丸める方法をご存知
の方はいらっしゃいませんでしょうか?
--
番場
PHP-users メーリングリストの案内