[PHP-users 23548]Re: mb_strimwidthと utf-8
Makoto Banba
banban @ chuo-gr.co.jp
2004年 11月 5日 (金) 11:40:47 JST
番場です。
> PostgreSQLは(極端に古いバージョンを除き)文字単位でカウントしますの
> で、varchar(256)だと256バイトではなくて256文字格納できることになります。
7.4.5 ですが、UTF-8 のデータベースに、
create table t_test (name varchar(10));
として、
insert into t_test values ('1234567890'); ... OK
insert into t_test values ('12345678901'); ... NG
insert into t_test values ('あいう'); ... OK
insert into t_test values ('あいうえ'); ... NG
となります。なので、バイトっぽいと思います。
片岡様のおっしゃる、文字単位とはキャラクタセットの最大のバイト数の文字の
数のことだと思いましたが、そうではないのでしょうか?
ちなみに、Firebird は、そのような実装になっているため、
varchar(10)
とすると、UTF-8 の漢字等は、3文字しか入りませんが、シングルバイト文字
なら、10文字入ります。
--
番場
PHP-users メーリングリストの案内