php使用rtrim时,可能会出现乱码
在工作中遇到一个情况是,想把一个字符串分割成数组,字符串是这样的:
$a="腹泻;恶心;头痛;";
分割数组的代码是这样的:
$b=explode(';',rtrim($a,';'));
结果,打印出来的$b是这样的:
Array
(
[0] => 腹泻
[1] => 恶心
[2] => 头��
)
查明原因后,才知道,rtrim函数把参数都转成了UTF8后再进行比较,对于中文,一般都是先转成Unicode,再根据下表转成UTF8。
解决方法:
1.mb_substr($a,0,-1,'utf-8')
2.array_filter(explode(';',$a))