做东西的时候突然遇到字符变魔术cp936的编码,当时蒙了,最后通过查手册和资料知道cp936就是指系统里第936号编码格式,也就是GB2312。

获取网页的字符编码可以使用mb_detect_encoding函数,他是是一款可以检测你使用的字符串是什么编码,然后返回字符串编码字符,下面是一个简单应用实例。

public function charset($url)
    {
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL,$url);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
        curl_setopt($curl, CURLOPT_MAXREDIRS, 10);
        $contents = curl_exec($curl);
        $response = curl_getinfo($curl);
        curl_close($curl);
      
        $encode =  mb_detect_encoding($contents,array("utf-8","gb2312","gbk"));
        return $encode;
    }