作者jackcomtw (黃色獅子頭)
看板PHP
標題[請益] 請問如何用PHP Detect OS 的編碼
時間Mon Sep 9 16:14:42 2013
小弟在做檔案上傳程式
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)
1F:→ alpe:不要存原始檔名, 另外存對應表. 09/09 21:32
2F:→ danny8376:UNIX-like系統的FS是沒有charset的 09/10 02:18
3F:→ danny8376:filename都是binary base 不過現在大多的系統也都是 09/10 02:19
4F:→ danny8376:用UTF-8當系統編碼就是 09/10 02:20
5F:→ danny8376:主要還是PHP跟FS之間的互動才是重點 09/10 02:26
6F:→ danny8376:像NTFS檔名用的是UTF-16 但Windows版PHP操作檔案時 09/10 02:27
7F:→ danny8376:函數部分則要看WINDOWS系統 09/10 02:30
8F:→ danny8376:上面UNIX-like的FS部分修正一下 應該說ext家族的FS才對 09/10 02:31
9F:→ danny8376:而linux版的PHP則是用UTF-8去處理檔案 09/10 02:32
10F:→ danny8376:所以很簡單的來說 只有WIN上的PHP要擔心檔案編碼問題 09/10 02:33
11F:→ danny8376:因為非WIN上的php都是用UTF-8處理 09/10 02:33
12F:→ danny8376:不過最佳方法就同樓上所說的 用對應表的方式最好 09/10 02:33
13F:→ danny8376:還可以避免檔名重複 09/10 02:34
14F:→ danny8376:有興趣可以參考這篇 09/10 02:35
謝謝danny大,
感激不盡
※ 編輯: jackcomtw 來自: 210.63.96.2 (09/10 12:44)