关于文件复制,文件名乱码的问题
我上傳文件,把文件路徑保存在數據庫中,如 /Public/Uploads/bbbbpppp.doc
數據庫整理為utf-8 bin
然后我要把這個文件作為模板,復制到另一個文件夾下并重命名,用來重新編輯。
命名為英文文件名是沒有問題的,我一旦保存為中文的 就成了 -------- ???????
但是又要求為中文,我試過上傳文件亂碼解決方法的 iconv 方法,沒有作用,變成其他亂碼了(上傳的中文文件名是沒有問題的)
$root=$_SERVER['DOCUMENT_ROOT'];
$file = $root.$checklist[0]['description'];//$checklist[0]['description']是數據庫路徑,讀取到頁面沒問題
$newfile = $root.'documents/''.'報告.doc';
copy($file, $newfile)
回復討論(解決方案)
??????? 是 utf-8 啦啦啦看眍 在 gbk 環境中看到的形式(還缺了一個字節)
簡體中文 windows 操作系統的默認字符集是 gbk
簡體中文 linux 操作系統的默認字符集是 utf-8
既然你的程序涉及到 文件復制,那么被處理的文件名編碼就得符合操作系統的默認字符集,不然就是“亂碼”了
你說 數據庫整理為utf-8 bin,顯然是不對的
utf-8 在 mysql 中表述為 utf8,而 bin(二進制)是不會做自動轉碼的
請先理順關系后再尋求幫助
數據庫編碼 utf-8 php編碼utf-8 然后再php里 用iconv將上傳文件名 轉換成gbk 上傳后顯示為中文沒有錯誤
總結
以上是生活随笔為你收集整理的关于文件复制,文件名乱码的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《仁王》团队新作《浪人崛起》港服 PS
- 下一篇: 亚马逊全球开店首个创新中心落户深圳,全面