看板 PHP 關於我們 聯絡資訊
小弟在做檔案上傳程式 move_uploaded_file($file_tmp_name, mb_convert_encoding($pictureTempPath . "\\" .$file_name , "Big5" "UTF-8")); 網頁編碼固定UTF-8 現在遇到問題, 因為現在用win 開發,以後會上到Linux 主機跑, 我想要用PHP 偵測 目前主機的FileSystem CherSet,不要寫死Big5, 找很久都找不到, 試過 mb_internal_encoding() , 她回傳ISO-8859-1,而不是big5, 謝謝~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.63.96.2 ※ 編輯: jackcomtw 來自: 210.63.96.2 (09/09 16:18)
alpe:不要存原始檔名, 另外存對應表. 09/09 21:32
danny8376:UNIX-like系統的FS是沒有charset的 09/10 02:18
danny8376:filename都是binary base 不過現在大多的系統也都是 09/10 02:19
danny8376:用UTF-8當系統編碼就是 09/10 02:20
danny8376:主要還是PHP跟FS之間的互動才是重點 09/10 02:26
danny8376:像NTFS檔名用的是UTF-16 但Windows版PHP操作檔案時 09/10 02:27
danny8376:函數部分則要看WINDOWS系統 09/10 02:30
danny8376:上面UNIX-like的FS部分修正一下 應該說ext家族的FS才對 09/10 02:31
danny8376:而linux版的PHP則是用UTF-8去處理檔案 09/10 02:32
danny8376:所以很簡單的來說 只有WIN上的PHP要擔心檔案編碼問題 09/10 02:33
danny8376:因為非WIN上的php都是用UTF-8處理 09/10 02:33
danny8376:不過最佳方法就同樓上所說的 用對應表的方式最好 09/10 02:33
danny8376:還可以避免檔名重複 09/10 02:34
danny8376:有興趣可以參考這篇 09/10 02:35
謝謝danny大, 感激不盡 ※ 編輯: jackcomtw 來自: 210.63.96.2 (09/10 12:44)