Nilai pulangan yang diperoleh dengan menggunakan mb_detect_encoding ialah cp936 Adakah ini sepadan dengan GBK?
Selepas transcoding melalui mb_convert_encoding, walaupun teks dipaparkan seperti biasa, apabila menggunakan mb_detect_encoding untuk mengesan format pengekodan teks, ia masih cp936 dan tidak berubah Mengapa ini?
Kod adalah seperti berikut:
$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;
Halaman Kod GBK ialah CP936.
Saya mencubanya dengan PHP5 dan PHP7 pada Ubuntu Selepas menukar kepada pengekodan UTF-8, UTF-8 boleh dikesan: