在PHP 檔案系統函數中使用UTF-8 字串
使用PHP 的mkdir 函數建立包含UTF-8 字元的資料夾時遇到問題?你並不孤單。此問題源自於 PHP 檔案系統包裝器在 Windows 上使用 ISO-8859-1 字串的期望。要解決此問題,請考慮以下解決方案:
首選解決方案:URL 編碼
- 編碼UTF-8 字串:
- 編碼UTF-8 字串:轉換UTF -8 使用urlencode 將目錄名稱轉換為URL編碼的字串
- URL 編碼字串: URL 編碼字元在 NTFS、HFS 和 UNIX 系統的檔案名稱中有效。
需要時解碼:
您可以在讀取或讀取檔案時使用urldecode 將檔案名稱解碼回UTF-8
替代解決方案(附警告):
選項1:擁抱ISO-8859-1
- 限製字元:限製檔案名稱轉換為 ISO-8859-1 中可表示的字元。
- 使用前編碼:在檔案系統函數中使用檔案名稱之前,使用 utf8_decode 執行 UTF-8 到 ISO-8859-1 轉換。
掃描後解碼:
使用從 scandir 取得的條目進行編碼utf8_encode 來存取原始 UTF-8 檔名。
選項 2:無效字元
- 檢查無效字元:確定如果檔案名稱中的任何位元組與中的無效字元匹配ISO-8859-1.
- 潛在問題:此方法可能不適用於所有情況,特別是當系統使用與ISO-8859-1 不同的編碼時。
考慮音譯:音譯 UTF-8 字符可能更可靠選項。
以上是如何在 PHP 的檔案系統函數中成功建立包含 UTF-8 字元的資料夾?的詳細內容。更多資訊請關注PHP中文網其他相關文章!