昨天下了 PHP6-dev 來試試看,剛剛裝上去,測試了幾種檔案讀寫狀況,其實在 php.ini 中需要設定的只有底下兩行:
第二行 unicode.filesystem_encoding = BIG5 表示指定檔案系統的編碼,這裡我使用 BIG5 是遷就 Windows 系統,如果是在 Linux / FreeBSD 上,應該可以設成 UTF-8。
有個地方要注意:
這裡有兩份文件,可以參考看看:文件一,文件二。
其他如傳遞參數等狀況,我有空在測試看看。
- unicode.semantics = on
- unicode.filesystem_encoding = BIG5
第二行 unicode.filesystem_encoding = BIG5 表示指定檔案系統的編碼,這裡我使用 BIG5 是遷就 Windows 系統,如果是在 Linux / FreeBSD 上,應該可以設成 UTF-8。
有個地方要注意:
- 除了中文,其他的編碼文字不能出現在檔案名稱中,否則會無法操作檔案。
- 檔案名稱的部份雖然可以用中文,但是寫入檔案時的資料如果含有其他國家的文字,會跑出 Notice ,可以在 fwrite 前加上 @ 來抑制。
- 載入 PHP 的方式若是用 Apache Handler,在某些常數名稱上會出現錯誤,建議使用 CGI 模式載入 PHP。
這裡有兩份文件,可以參考看看:文件一,文件二。
其他如傳遞參數等狀況,我有空在測試看看。
文章標籤
全站熱搜

說起來, PHP6 還是沒有辦法令 windows 系統辨識 php 為 unicode 軟體啊。或者,這是 Apache 的問題... 如果 windows 系統認為 PHP6 是一套 unicode 軟體的話,讀寫檔案系統時,就會用 unicode 去搜尋檔案表,而不是用 ansi (big5) 。現況則是 windows 系統認為 php 是一套 ansi 軟體,所以一定用 ansi 碼搜尋檔案表。
或許是,不過我個人猜測認為是 ICU 3.6 並沒有呼叫正確的 WinAPI。