檔案上傳編碼有關問題

來源:互聯網
上載者:User
檔案上傳編碼問題
用Flash+PHP實現檔案的批量上傳。PHP在儲存檔案時,遇到編碼問題:
PHP code


檔案名稱很不規範,有中文、英文、法文、俄文、……不確定類型,這時候有些檔案儲存下來,要麼是亂碼,要麼被截斷(副檔名都丟失了)。iconv('utf-8','gbk',$_POST['fn']),這裡的問題?該如何做?

------解決方案--------------------
你當前頁面用了utf-8
header("Content-Type:text/html;charset=utf-8");


而這個應不該轉成gbk
$uploadfile=$uploaddir.iconv('utf-8','gbk',$_POST['fn']);

去掉或是
$uploadfile=$uploaddir.iconv('gbk','utf-8', $_POST['fn']);
試試
------解決方案--------------------
GBK編碼的字串沒有俄文這些符號。也就是說它只適用於中文
建議你用utf-8來儲存,檔案名稱亂碼的問題就這麼撂著吧
------解決方案--------------------
$uploadfile = $uploaddir . base64_encode($_POST['fn']) . '.' . pathinfo($_POST'fn'], PATHINFO_EXTENSION);
------解決方案--------------------
你資料來源是GBK要怎子搞呢。
iconv用//IGNORE忽略特殊符號轉成UTF8、要麼就重新命名。
------解決方案--------------------
你自己在你的windows機上能夠輸入俄文,阿拉伯文命名一個檔案嗎?
檔案名稱要視乎客戶作業系統的編碼,一般國內使用者用的都是中文版windows,系統預設內部編碼屬GBK,GBK怎麼可能包含俄文之類的語種呢。或者換過來說你讓作業系統編碼為iso-8859-1的使用者下載你的中文名檔案,中文即使給你轉成gbk還不一樣亂碼。乾脆就隨機命名好了,不然有啥好方法,全世界各地不同的作業系統使用者系統編碼千差萬別,除非所有都統一用utf-8做內碼,你這邊也不用費勁用iconv轉了。
你看我現在用ubuntu,系統編碼就是utf-8的,那些中文俄文法文你不轉GBK對我這種使用者就算正常的,你轉GBK倒還亂碼了。呵呵。
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.