Multibyte String 函数
在线手册:中文 英文
PHP手册

mb_strwidth

(PHP 4 >= 4.0.6, PHP 5)

mb_strwidthReturn width of string

说明

int mb_strwidth ( string $str [, string $encoding ] )

Returns the width of string str.

Multi-byte characters are usually twice the width of single byte characters.

Characters width
Chars Width
U+0000 - U+0019 0
U+0020 - U+1FFF 1
U+2000 - U+FF60 2
U+FF61 - U+FF9F 1
U+FFA0 - 2

参数

str

The string being decoded.

encoding

encoding 参数为字符编码。如果省略,则使用内部字符编码。

返回值

The width of string str.

参见


Multibyte String 函数
在线手册:中文 英文
PHP手册
PHP手册 - N: Return width of string

用户评论:

larry1chan at gmail dot com (07-Feb-2008 06:38)

to convert a multi-byte character into hex strings:

$b = "現,市民派利市的習慣亦有所改變";

    printf("length of string: %d <br>", mb_strlen($b, 'UTF-8'));
    for ($i=0; $i < mb_strlen($b, 'UTF-8'); $i++){
        $ch = mb_substr($b, $i, 1, 'UTF-8');
        $chlen = mb_strwidth($ch, 'UTF-8');
        $hexs = '';
        for ($j=0; $j < $chlen; $j++)
            $hexs = $hexs . sprintf("%x", ord($ch[$j]));
        printf ("width=%d => '%s' |hex=%s<br>", $chlen, $ch, $hexs );
       
       
    }

Anonymous (01-Nov-2007 12:27)

Note: mb_strwidth is NOT returning bytes.  It's returning the width of monotype characters.  (In some languages, some characters will take up 2 character widths if displayed in monotype.)