[請益] Windows 讀取含有繁簡中及日文檔名

看板PHP作者 (如果)時間9年前 (2015/12/06 21:04), 9年前編輯推噓11(11018)
留言29則, 8人參與, 最新討論串1/2 (看更多)
大家好 小弟最近想做一個個人用的網路硬碟 目前伺服器環境是 Windows Server 2012 繁中 + nginx 想用 PHP 去讀 D:\ 裡面的檔案列表 遇到繁體中文 iconv big5 to UTF-8 沒問題 但是日文及簡體中文卻怎麼也讀不出來 不知道有沒有辦法解決呢? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.233.94.97 ※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1449407058.A.548.html

12/07 21:05, , 1F
owncloud, map network drive
12/07 21:05, 1F

12/07 21:14, , 2F
印象中PHP5.X對Windows Unicode的支援很不足
12/07 21:14, 2F

12/07 21:16, , 3F
PHP6應該就沒這個問題 如果要以PHP5.X來達成
12/07 21:16, 3F

12/07 21:17, , 4F
可能需要用C語言寫一個程式 再用PHP調用來實現
12/07 21:17, 4F

12/08 06:56, , 5F
目前是使用PHP7,不知道這問題有沒有改善或解決方法呢
12/08 06:56, 5F

12/08 14:04, , 6F
php7應該沒這問題? 可以貼相關幾句程式上來看看嗎?
12/08 14:04, 6F

12/08 15:07, , 7F
PHP7 跟5.6會差很多嗎?
12/08 15:07, 7F

12/08 17:14, , 8F
首先PHP沒有6,7跟5.6有一定的差距
12/08 17:14, 8F

12/08 17:15, , 9F
但沒有差到要整個打掉重練
12/08 17:15, 9F

12/08 17:58, , 10F
抱歉 不知道PHP6已經擱置了 當我第二段沒說
12/08 17:58, 10F
驗明正身,PHP7 http://i.imgur.com/13Lb7d6.png
scandir() 檔案及瀏覽器編碼都是 UTF-8 http://i.imgur.com/mbwPqgQ.png
opendir() 一樣都是 UTF-8 http://i.imgur.com/5P56rNr.png
若瀏覽器設定為 big5 http://i.imgur.com/FFIHKJy.png
這樣 ※ 編輯: ids93216 (36.233.47.16), 12/08/2015 21:19:27

12/08 22:09, , 11F
我查了一下當初預想PHP6是要解決Unicode的問題
12/08 22:09, 11F

12/08 22:10, , 12F
結果花了很多時間最substr($path, 0, -1)後還擱置 所以7好像也沒有解決的
12/08 22:10, 12F

12/08 22:10, , 13F
樣子 有一個叫php-wfio的php extension好像就是來
12/08 22:10, 13F

12/08 22:11, , 14F
解決Windows環境下PHP處理含有Unicode檔名的問題
12/08 22:11, 14F

12/08 22:12, , 15F
但他是以PHP5.X為基礎開發 不過作者有試著支援PHP7
12/08 22:12, 15F

12/08 22:14, , 16F
Github上有他對PHP7的修改版的Commit 使用Windows的
12/08 22:14, 16F

12/08 22:15, , 17F
PHP7.0 RC2測試好像也沒問題 原PO可以去看看
12/08 22:15, 17F
不過他的 PHP7 版似乎只有源碼沒有 release 不知道什麼時候才會正式放出 ※ 編輯: ids93216 (125.227.215.234), 12/09/2015 09:02:30

12/09 10:44, , 18F
可以試著用他的Source 然後把.C換成他修改過後的
12/09 10:44, 18F

12/09 10:45, , 19F
再用像Visual Studio的工具試著編譯DLL 我看到他有
12/09 10:45, 19F

12/09 10:45, , 20F
config.w32
12/09 10:45, 20F

12/09 16:48, , 21F
http://tinyurl.com/3f3zyvu 這邊有把php的source
12/09 16:48, 21F

12/09 16:48, , 22F
編譯成DLL的教學 其他PHP的套件編譯也是差不多原理
12/09 16:48, 22F

12/09 16:48, , 23F
可以參考一下
12/09 16:48, 23F
感謝關鍵字,今天弄了個 PHP5.6 的環境出來,目前看起來正常 不過倒是發現了幾個 bug 就是了 XD https://github.com/kenjiuno/php-wfio/issues/8 看來這應該是目前最佳解了,感謝!! ※ 編輯: ids93216 (36.233.47.16), 12/09/2015 20:51:29

12/09 23:12, , 24F
不客氣 你也幫忙作者找到未知的BUG 做福廣大PHP使用
12/09 23:12, 24F

12/09 23:14, , 25F
者 話說作者手腳很快 已經做了fix 等下個Release吧
12/09 23:14, 25F

12/09 23:14, , 26F
另外看來PHP7的版本也不遠了
12/09 23:14, 26F
這作者動作真的好快... 昨天剛 report 完就馬上修正完推出了... ※ 編輯: ids93216 (36.233.47.16), 12/10/2015 20:50:05

12/18 23:02, , 27F
你看一下mb_相關的函數吧,很簡單的小問題
12/18 23:02, 27F

08/09 23:22, , 28F
推這篇,可以幫很多人解決問題,應該m起來
08/09 23:22, 28F

05/20 20:49, , 29F
一定要推一下
05/20 20:49, 29F
文章代碼(AID): #1MP39IL8 (PHP)
文章代碼(AID): #1MP39IL8 (PHP)