2011-06-11 67 views
2

我想使用php上傳文件。上傳正在工作。 但我有一個文件,其中包含文件名稱(不是內容)與不同的語言。 (例如japaneese字符)。 但我上傳該文件到服務器後;顯示不同字符的文件名稱。 如何將相同的文件名稱上傳到服務器。使用PHP保存包含具有不同字符的文件名的文件

+0

通過什麼字符串函數運行文件名? – alex 2011-06-11 03:41:16

+0

上傳頁面是什麼字符集?操作系統/文件系統使用什麼charset? – netcoder 2011-06-11 03:42:21

+5

絕對不要使用用戶提供的文件名稱來顯示它,除了顯示它以外,還要製作自己的文件名(您知道這是安全的)並存儲文件的名稱;然後將用戶提供的文件名存儲在數據庫中的某處。 – 2011-06-11 03:54:02

回答

0

聽起來像你有一個字符編碼問題。您必須確保您的HTML表單和您的PHP配置使用相同的字符集。 UTF-8是首選,因爲它包含幾乎所有廣泛使用的語言的字符。表單標籤應包括以下這樣一個屬性:

<form accept-charset="UTF-8" ...> 

此外,檢查您的php.ini文件指定默認的字符集:

default_charset = "UTF-8" 

如果你無法控制什麼在你的php.ini,你可以嘗試把它在你的.htaccess文件像這樣(假設一個典型的Apache服務器。):

php_value default_charset UTF-8 

良好的措施,你可以ALS Ø添加的Content-Type元標記添加到HTML頭部分指定UTF-8:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 

如果你在數據庫中存儲的任何文件名,你必須確保它也使用UTF- 8。

相關問題