PHP - 在Windows 上處理UTF-8 檔案名稱
問題陳述
上傳具有UTF-8 編碼檔案名稱的檔案會導致Windows上的字元扭曲。
建議的解決方案
解決此問題的原始建議涉及使用 iconv() 函數將檔案名稱轉換為與 Windows 系統相容的程式碼頁,例如 CP1258。但是,這種方法有其限制。
更新的解決方案
實際上,PHP 檔案系統函數只能處理系統活動程式碼頁內的字元。因此,出現了兩種可能的解決方案:
選項1:
- 將檔案名字符號限制為系統的代碼頁(例如,您的代碼頁(例如,您的情況為CP437)
- 此選項限制越南字的使用。
選項2:
- 將系統的代碼頁更改為越南語(例如CP1258 )
- 將檔案名稱轉換為新的代碼頁(例如,$fn2 = iconv("UTF-8","cp1258", $base_dir.$fn);)
- 此選項也將檔案名稱符號限制為越南語代碼頁1258。
兩個選項的缺點:
-
選項1: 無法使用某些越南語字元
-
選項2:更改系統代碼頁的要求和文件名字符的限制
有關更改系統代碼頁的其他資訊
要更改系統的代碼頁:
- 導覽至控制面板>地區
- 選擇「管理」標籤
- 在「非Unicode 程式的語言」下,按一下「變更系統區域設定」按鈕
- 選擇「越南語(越南)」從下拉式選單
以上是如何在 Windows 上的 PHP 中處理 UTF-8 檔案名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!