作者appleboy46 (小惡魔)
看板PHP
標題Re: [請益] 檔名編碼問題
時間Thu Sep 30 16:09:53 2010
※ 引述《davidou (老歐 ! 月夜雪嵐)》之銘言:
: 我有個程式 他會把字串來當作檔案名稱來用 可是因為我網頁編碼是utf8的
: 要用來當檔名似乎要轉到big5去 所以我這樣寫
: $filename="這是中文檔名";
: $filename=iconv("utf-8","big5",$filename); //因為檔名是big5所以要轉碼才能當檔名
: $filename = str_replace("\\","",$filename); //為避免黨名包含有跳脫字元
: ..[後略]
: -----------------------------------------------------------------
: 這樣拿來存中文檔案沒問題
: 可是現在問題是 要是我的filename是日文的話 我這樣把它存成big5碼就會錯啦
: 會變成一串很奇怪的東西, 所以想問看看一下 如果遇到像這樣的問題我該怎解決
這問題好像都會久久出現一次,上傳中文檔名該如何處理?
為啥一定要取中文檔名呢?或者是日文檔名,既然現在都是 UTF-8 的環境
我建議可以把上傳檔名存到 database,然後將實體檔案名稱取成 26英文字母
或者是加上數字、底線這樣會比較好,在網頁下載部份
在利用 header 方式,從資料庫撈取原來的檔名做下載動作
這樣可以解決你上面問題,也不會遇到檔案名稱相同的困難......
--
PHP MVC CodeIgniter 繁體中文手冊:
http://tinyurl.com/mduyv8
PHP MVC CodeIgniter 繁體中文討論區:
http://tinyurl.com/yayzoz8
PHP MVC CodeIgniter 中文官方網站:
http://tinyurl.com/yatds8n
Appleboy Blog 電腦技術:
http://blog.Wu-Boy.com
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 74.207.249.141
1F:→ davidou:這我知道XD 重點是在於 這實體檔案在電腦內還有其他用途XD 09/30 21:17
2F:→ davidou:所以要是亂數之類的,之後我還是得要去開資料庫對她是甚 09/30 21:18
3F:→ davidou:麼檔案 所以不得已才看看有沒有辦法 09/30 21:18
4F:→ buganini:那你可以存base64之類的 或是hex 10/02 01:53
5F:→ kancu:凡事有利就有弊..你想要以後直接看檔名知道它是啥.. 10/02 03:30
6F:→ kancu:那在上傳時就會有一定的問題跟困難...尤其是不同語系的情況. 10/02 03:32
7F:→ kancu:個人建議用26英文字母或數字作檔名.. 10/02 03:33
8F:→ kancu:如果怕以後不知道那個檔名是什麼檔案... 10/02 03:33
9F:→ kancu:都寫上傳了..何不記錄簡單的檔案資訊到資料庫裡.. 10/02 03:34
10F:→ kancu:然後簡單的寫個搜尋的功能..我相信這不會花什麼時間的.. 10/02 03:34