Re: [請益] 檔名編碼問題

看板PHP作者 (小惡魔)時間15年前 (2010/09/30 16:09), 編輯推噓0(0010)
留言10則, 3人參與, 最新討論串2/2 (看更多)
※ 引述《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

09/30 21:17, , 1F
這我知道XD 重點是在於 這實體檔案在電腦內還有其他用途XD
09/30 21:17, 1F

09/30 21:18, , 2F
所以要是亂數之類的,之後我還是得要去開資料庫對她是甚
09/30 21:18, 2F

09/30 21:18, , 3F
麼檔案 所以不得已才看看有沒有辦法
09/30 21:18, 3F

10/02 01:53, , 4F
那你可以存base64之類的 或是hex
10/02 01:53, 4F

10/02 03:30, , 5F
凡事有利就有弊..你想要以後直接看檔名知道它是啥..
10/02 03:30, 5F

10/02 03:32, , 6F
那在上傳時就會有一定的問題跟困難...尤其是不同語系的情況.
10/02 03:32, 6F

10/02 03:33, , 7F
個人建議用26英文字母或數字作檔名..
10/02 03:33, 7F

10/02 03:33, , 8F
如果怕以後不知道那個檔名是什麼檔案...
10/02 03:33, 8F

10/02 03:34, , 9F
都寫上傳了..何不記錄簡單的檔案資訊到資料庫裡..
10/02 03:34, 9F

10/02 03:34, , 10F
然後簡單的寫個搜尋的功能..我相信這不會花什麼時間的..
10/02 03:34, 10F
文章代碼(AID): #1Cf4NN4w (PHP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #1Cf4NN4w (PHP)