php fread()亂碼是因為輸出頁面的編碼和被讀取檔案的編碼不一致,其解決方案:1、開啟對應的PHP檔案;2、透過fread函數讀取檔案;3、透過“ iconv('gbk', 'utf-8', $data)」方法將讀取的內容轉碼即可。
本教學操作環境:Windows10系統、PHP8.1版、DELL G3電腦
php fread()亂碼怎麼辦?在
php中,透過fread函數直接讀取文件,文件內容如果遇到中文則會出現亂碼問題,這個該如何去解決?
可能是輸出頁面的編碼和被讀取檔案的編碼不一致。
解決方法:
讀出來以後把內容轉碼試試看
iconv('gbk', 'utf-8', $data)
相關介紹:
#iconv
(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)
iconv — 字串依要求的字元編碼來轉換
說明
iconv(string $in_charset, string $out_charset, string $str): string
將字串str 從in_charset 轉換編碼到out_charset。
參數
in_charset
輸入的字元集。
out_charset
輸出的字元集。
如果你在 out_charset 後面加入了字串 //TRANSLIT,將會啟用轉寫(transliteration)功能。這個意思是,當一個字元不能被目標字元集所表示時,它可以透過一個或多個形似的字元來近似表達。如果你加入了字串 //IGNORE,不能以目標字元集表達的字元將被默默丟棄。否則,會導致一個 E_NOTICE並傳回 false。
警告
//TRANSLIT 运行细节高度依赖于系统的 iconv() 实现(参见 ICONV_IMPL)。 据悉,某些系统上的实现会直接忽略 //TRANSLIT,所以转换也有可能失败,out_charset 会是不合格的。
str
要轉換的字串。
傳回值
回傳轉換後的字串, 或是失敗時傳回 false。
fread()
fread() 函數讀取開啟的檔案。
函數會在到達指定長度或讀到檔案結尾(EOF)時(以先到者為準),停止運作。
此函數傳回讀取的字串,如果失敗則傳回 FALSE。
語法
string fread ( resource $handle , int $length )
參數
handle 檔案系統指針,是典型地由 fopen() 建立的 resource(資源)。
length 必需。規定要讀取的最大位元組數。
推薦學習:《PHP影片教學》
以上是php+fread()亂碼怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!