php编码强制转换
# 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);
}