要避免使用 PHP file()
函數讀取文件時出現亂碼問題,可以嘗試以下方法:
mb_convert_encoding
函數將其轉換為所需的編碼。$content = file_get_contents($filename);
$content = mb_convert_encoding($content, 'UTF-8', 'auto');
file_get_contents()
函數代替 file()
函數:file_get_contents()
函數通常比 file()
函數更適合讀取大文件,而且在處理編碼問題時效果更好。$content = file_get_contents($filename);
fopen()
和 fgets()
函數逐行讀取文件:這樣可以更好地控制編碼和處理大文件。$handle = fopen($filename, "r");
if ($handle) {
while (($line = fgets($handle)) !== false) {
// 對每一行進行編碼轉換
$line = mb_convert_encoding($line, 'UTF-8', 'auto');
echo $line;
}
fclose($handle);
} else {
// 錯誤處理:無法打開文件
}
SplFileObject
類,它允許您逐行讀取文件,同時可以指定編碼。$file = new SplFileObject($filename);
$file->setFlags(SplFileObject::READ_CSV);
$file->setCsvControl(',', '"', '\\');
foreach ($file as $row) {
// 處理每一行
}
通過嘗試上述方法,您應該能夠避免使用 PHP file()
函數讀取文件時出現的亂碼問題。