核心代码:
//检查字符串的编码 $charset=mb_detect_encoding($doc,['ASCII','GB2312','GBK','BIG5','UTF8'],TRUE); //字符串转换为UTF8 $doc = iconv($charset, 'UTF-8//TRANSLIT//IGNORE', $doc);
如果是读写文件,在不更改文件编码情况下,可以先读取内容转为系统编码,再转为文件编码格式写到文件中。
需要注意的是,mb_detect_encoding方法编码列表默认是顺序检查,一旦监测到类似编码即返回该编码类型,如此操作可能出现检测编码不正确问题,因此最好把
目标检测编码放到最后,可减少检测出错概率。关于编码检测顺序,可以使用mb_detect_order设置。