今天线上遇到了一个问题,上传的csv文件在按行取出时,有的数据行文本是ISO-8859-1编码,导致出现乱码。
判断文本编码
$fileType = mb_detect_encoding($str , array('ASCII','gb2312','UTF-8','GBK','LATIN1','BIG5')) ;
编码转换
方法一
conv($from, $to, $str);
方法二
mb_convert_encoding($str, $to, $from);
ISO-8859-1编码特殊处理
方法一:
utf8_encode($str) // php 方法,不一定有效 (个人业务场景尝试,无效)
方法二
$str = mb_convert_encoding($str, 'UTF-8', "GBK"); $str = str_replace('', '', $str); //方法二: 个人业务场景尝试, 有效