由于需要,想实现“php截取等长UFT8中英文混合字串”,可是网上找了很多代码不是有乱码就是不能实现等长(以一个中文长度为单位,两个英文字母算一个长度,如‘等长’长度为2,‘UTF8’长度也是2). 由于utf8编码时,中文为三个字节,英文为一个字节,用substr就会出现乱码,用mb_substr会出现上面的不等长问题,但不会有乱码: 我以字节为单位进行操作,简单实现了一个小程序. 只能在utf8编码是使用. /*utf8编码时截取等长中英文字串*/ //英文标点[.,\"\\?!:_'] &