专栏名称: SegmentFault思否
SegmentFault (www.sf.gg)开发者社区,是中国年轻开发者喜爱的极客社区,我们为开发者提供最纯粹的技术交流和分享平台。
今天看啥  ›  专栏  ›  SegmentFault思否

PHP 源码探秘——为什么 trim 会导致乱码

SegmentFault思否  · 公众号  · 程序员  · 2018-01-31 08:00
我的博客:https://mengkang.net/1039.html运行以下代码:$tag = "互联网产品、";$text = rtrim($tag, "、");print_r($text);我们可能以为会得到的结果是 互联网产品,实际结果是 互联网产�。为什么会这样呢?科普PHP 里使用 mb_前缀的都是多字节函数:http://php.net/manual/zh/ref.mbstring.php。比如:$str = "abcd";print_r(strlen($str)."\n"); // 4print_r(mb_strlen($str)."\n"); // 4$str = "周梦康";print_r(strlen($str)."\n"); // 9print_r(mb_strlen($str)."\n"); // 3mb_系列函数是以“多个字节组成的一个字符”为颗粒度来操作的,不带 mb_则是按实际的字节数来操作的。原理trim 函数文档:string trim ( string $str [, string $character_mask = " \t\n\r\0\x0B" ] )该函数不是多字节函数,也就是说,汉字这样的多字节字符,会拿其头或尾的单字节来和后 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照