编码问题是解码者决定的,数据本身并不指明编码方式,而是读数据的解码者选择自己的解码方式
此处,php程序是数据本身,php解释器是解码者本身,
php解释器对 php程序的编码方式 并不应人类对php程序的编码方式理解不同而转移
因此,理论上不存在获取当前数据编码方式的 接口,只要当时的编码者(譬如人类)显示指明编码方式,
解码者(譬如php解释器)方可获知
即使在解析以后再人类看来是一片乱码, PHP认为一切都是正确的.
当然从前端获取来的字符例外
如果不清楚字符串的编码格式的话,就可以将这段字符这样检查:
$encode = mb_detect_encoding($string, array('ASCII','UTF-8','GB2312','GBK','BIG5'));
echo $encode;
这样就能知道它是什么编码的了。后续操作还可以为其转码:
if ($encode == 'UTF-8'){
$string = iconv('UTF-8','GBK',$string);
}
转自网络!