洛阳铲的日志

2006年02月26日

PHP中的多字节字符串处理

Filed under: PHP — blog @ 13:33

PHP中处理单字节编码的字符串(ASCII-compatible)时,str*()系列函数就可以完全正常工作,但是在处理多多字节编码的字符串时,比如处理下面utf-8编码的中文字符串$str=”多字节字符串测试”;时,问题就出来了大大:


当然如果使用trim, split, splice,这些函数的结果就自然而然的会出现一些意想不到的结果。
当处理多字节(比如:中文)字符串的时候,PHP给我们提供了一组以mb_开头的trim, split,
splice的多字节版本Multibyte String Functions这样我们就可以很好的对多字节字符串进行处理了:
$str=”多字节字符串测试”;              //8 characters
echo strlen($str);                     //24
mb_internal_encoding(“UTF-8”);    //当前字符串使用的编码
echo mb_strlen($str);       //8
echo mb_substr($str,-1);   //试
echo mb_substr($str,1);    //字节字符串测试
?>

有意思的是mb_*系列函数中还包括了mb_ereg_*()函数,这听起来是个好事,但是实际上ereg_*()和preg_*()系列函数已经内置了对多字节的支持了:

使用preg_*() 也可以一样的工作:


没有评论 »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by WordPress