Re: [請益] 存取 Windows 上的中文檔案
※ 引述《danny0838 (道可道非常道)》之銘言:
: 因為某些因素,小的有用 php 存取 windows 系統上中文檔名檔案的需求..
: 我知道繁中版 windows 的檔名是用 big5 編碼,
: 假設一個檔案名為 "測試.txt",而 php 程式是 UTF-8 編碼,
: 用 iconv("UTF-8","big5//IGNORE","測試.txt") 即可讀到該檔案。
: 但如果檔名包含 unicode 呢?
: 比如 "消化酶.txt"(酉每是 unicode 字元),它會被編為什麼碼?
PHP 讀不到..
: 第二個問題是,若用 scandir 之類的方式掃資料夾,
: 純 big5 檔名會以 big5 格式傳回,可做進一步應用;
: 但夾有 unicode 的檔案傳回值一部分會變成 ? (UTF-8 無法對應到 big5 者),
: 造成路徑錯誤,掃到檔案卻無法進一步處理。
: 所以,要如何用 php 存取 windows 系統下,檔名夾有 unicode 字元的檔案呢?
這個問題其實有難度, 在 Windows 下面如果用 PHP 沒辦法解決您的問題。
PHP 在 Windows 下面,如果是取回檔案名稱的話,在 CP950 以外的字都會變成
變成一個 "?" ,也就是讀不到...
不過 Windows 自己其實也有問題 (這是題外話) 你可以下個指令檢驗一下,
假設你有個目錄,裡面有消化酶.txt ,您用 dir > test.txt ,然後把檔案打開,
會發現那個 "酶"也變成了 "?" 。
目前有比較簡單的兩個解法:
1. 把檔案放到 Linux 去 (你可以用 ftp, 我用 FileZilla 3.3.2)
http://www.flickr.com/photos/roga/4464468653/sizes/o/
然後改個檔名,建個 table 來對應一下,之後再下載到 windows 。
2. 架一下 SAMBA ,連線網路磁碟暫解。
--
The Internet: where men are men, women are men, and children are FBI agents.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.220.104.63
推
03/27 13:53, , 1F
03/27 13:53, 1F
→
03/27 13:55, , 2F
03/27 13:55, 2F
→
03/27 13:56, , 3F
03/27 13:56, 3F
→
03/27 13:58, , 4F
03/27 13:58, 4F
→
03/27 13:59, , 5F
03/27 13:59, 5F
→
03/27 16:17, , 6F
03/27 16:17, 6F
※ 編輯: roga 來自: 61.220.104.63 (03/27 23:15)
推
03/27 23:28, , 7F
03/27 23:28, 7F
討論串 (同標題文章)