php编码强制转换

前言:本来是写一个csv导入的小功能,结果就遇到了业务同事的各种奇葩环境,导致导入数据乱码问题。

本来我的解决方案是这样的,直接怼编码强转

$rowContent = mb_convert_encoding($rowContent, 'utf-8', 'gbk');

但是这样就会存在一种问题,万一业务同事到处的是正常的utf8编码就会导致乱码,而非utf8编码却会正常。

所以我这边多加了一行判断编码格式,以便处理这种奇葩问题。

$encode = mb_detect_encoding($rowContent, ['ASCII', 'UTF-8', 'GB2312', 'GBK', 'BIG5', 'LATIN1']);
if ($encode != 'UTF-8') {
    $rowContent = mb_convert_encoding($rowContent, 'UTF-8', $encode);
}

添加新评论

文章状态:已收录~