前言
相信很多人在使用PHP的過程中都遇到過產生檔案亂碼的情況,不論是使用fwrite還是file_put_contents寫入。也許你會先嘗試從編碼入手嘗試解決,但最終的結果往往是不理想的,儘管我們都將其轉換為了UTF-8編碼了...
那麼究其根本原因是什麼呢?
一句話:缺少頭BOM(當然,這裡指的肯定不是Js的Bom)
#BOM
既然提到了BOM,那麼可能有的同學不太了解這個傢伙,這裡我簡單說一下,老鳥可以跳過。在Windows下用記事本之類的程式將文字檔儲存為UTF-8格式時,記事本會在檔案頭前面加上幾個不可見的字元(EF BB BF),就是所謂的BOM(Byte order Mark )。
不僅限於 記事本保存的文件,只要在文件的開口包含了「EF BB BF」 幾個不可見的字元(十六進位應該是xEFxBBxBF,用二進位編輯檔案可見)。這像是約定俗成的東西,當系統看到這玩意的時候,就會覺得你這個檔案是UTF-8編碼的。
這就是為什麼當檔案沒有BOM時,你給使用者呈現的檔案就可能是亂碼的原因了。
PS : 其實你可以將BOM理解成HTML中的charset屬性和XML中的encoding屬性,就是扮演一個標識作用。
方案
那麼如何在PHP中輸出BOM呢?
答案是在所有內容輸出之前輸出:
print(chr(0xEF).chr(0xBB).chr(0xBF));
當然,如果你是在生成文件,可能是下面兩種:
fwrite($file, chr(0xEF).chr(0xBB).chr(0xBF)); file_put_contents($file, chr(0xEF).chr(0xBB).chr(0xBF));
推薦教學:PHP影片教學
以上是php產生txt亂碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器