用mb_detect_encoding得到的回傳值是cp936這個與GBK對應?
透過mb_convert_encoding轉碼後,雖然文字顯示正常,但在用mb_detect_encoding偵測文字編碼格式,仍然是cp936,並沒有改變,這是為什麼?
程式碼如下:
$file_contents = fread($file,$fileSize);
$typeofData = mb_detect_encoding($file_contents,array("GBK","GB2312","UTF-8","ASCII","BIG5"));
if ($typeofData != "UTF-8"){
// $file_contents = iconv("GBK","UTF-8",$file_contents);
$file_contents = mb_convert_encoding($file_contents,"UTF-8","GBK");
}
echo mb_detect_encoding($file_contents,array("GBK","GB2312","UTF-8","ASCII","BIG5"))."<br/>";
echo $file_contents;
GBK的Code Page是CP936.
我在Ubuntu上用PHP5和PHP7都試過了,轉成UTF-8編碼後能夠檢測到UTF-8: