[PHP-users 27293] Re: mb_strwidth() の結果が期待と異なる

Shu Sawada luna @ lunanet.gr.jp
2005年 10月 25日 (火) 02:47:19 JST


さわだです。

しょうなりさん、ありがとうございます。
僕の手元だけでは無かったと言うことで、ひとまず安心しました。
(それも変な話ですが)

>>#28220のバグ修正 (mb_strwidth()関数が極一部の文字の幅を正しく返すことが出来ない)
> 
> とありますので、もしかしたらこのバグフィックスの際に発生した
> 別の現象かもしれません。
> 
> PHPのソースまでは追いかけていませんので、あくまで予測ですが。

なるほど、、、
libmbflもありますし、4.3.10->4.3.11でmbstringまわりに結構手が
入ったのでしょうか。

この動作が"正しい"動作なのかどうかは僕には判りかねるのですが、
例外として?幅が2として取れないケースがあるのであれば、そこら辺
何らかの形で明らかになっていると幸せです。

#mb_strwidth()は入力チェックで使っているもので

マニュアルの
「マルチバイト文字は通常シングルバイト文字の倍の幅となります。」
というのは、unicodeなどの場合に3-4byteになったりします、という意味と
理解していたのですが、そうとも限らないのでしょうか。
文字コードを真面目に勉強したことが無いので、ここら辺がイマイチ
ちゃんと理解できていません。ダメダメですね…。

-- 
Shu Sawada
http://luna.lunanet.gr.jp/


PHP-users メーリングリストの案内