[PHP-dev 1382] Re: mb_strwidth関数とmb_strimwidth関数の挙動について

Seiji Masugata s.masugata @ digicom.dnp.co.jp
2007年 8月 9日 (木) 15:09:03 JST


こんにちわ、桝形です。

> もし、文字列の幅をバイト数と等しいとみなして何か処理を行いたければ、私は
> strlen() と mb_convert_encoding を組み合わせてやることをお薦めしたいと思
> います。新たに関数を追加する必要はないと思います。

今回の目的は、文字列の幅をバイト数と等しいとみなして何か処理を行いのではなくて
(その場合はmb_strcutを使うべきですね)

以下の、

> > http://www.mono-space.net/blog/programming/051026_php_mbfl.htm
> > http://www.unicode.org/reports/tr11/#Recommendations
> > ----------------------------------------------------------------------------
> > When mapping Unicode to East Asian legacy character encodings
> > 
> >     * Wide Unicode characters always map to fullwidth characters.
> >     * Narrow (and neutral) Unicode characters always map to halfwidth characters.
> >     * Halfwidth Unicode characters always map to halfwidth characters.
> >     * Ambiguous Unicode characters always map to fullwidth characters.
> > 
> > When mapping Unicode to non-East Asian legacy character encodings
> > 
> >     * Wide Unicode characters do not map to non-East Asian legacy character encodings.
> >     * Narrow (and neutral) Unicode characters always map to regular (narrow) characters.
> >     * Halfwidth Unicode characters do not map.
> >     * Ambiguous Unicode characters always map to regular (narrow) characters.
> > ----------------------------------------------------------------------------
> > 
> > 実装としては間違っていないけれど、今は常にnon-East Asianとして定義
> > されているのでは、という事でした。本来であれば、該当する部分は、
> > 
> > - East Asian   : 幅2
> > - non-East Asian : 幅1
> > 
> > というような分岐が必要なのでは、という事です。

East Asianで振る舞う実装を追加したい、というのが目的です。
そのように理解していますが間違っていますでしょうか?
そもそも無理がある、という事でしょうか?

-- 
Seiji Masugata <s.masugata @ digicom.dnp.co.jp>



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