我在使用我的PHP下載腳本來處理不帶英文字母的特殊字母字符(如「æøå」)時遇到問題。包含這些字母的文件無法找到,我想知道是否有某種編碼問題。這些文件存儲在運行XAMPP的Windows機器上。使用我的php下載腳本無法下載帶有特殊字符的文件
$getFile = $_SESSION['base'].$_GET['file'];
$getFile = mb_convert_encoding($getFile, "UTF-8");
if (file_exists($getFile)) { //Retrives the file in path $getFile
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.basename($getFile).'"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($getFile));
readfile($getFile);
exit;
}
分配到$的GetFile該字符串可以這個樣子「文件/項目/ Abrahallen/administrasjon/ExempelPåadmin.txt」
所以,當有特殊字符的文件名請求file_exists沒有找到一個文件,如果我註釋掉if語句,我得到這個錯誤信息
陣列 ( [文件] =>/ExempelPåadmin.txt ) 文件/項目/ Abrahallen/administrasjon/ExempelPåadmin.txt
警告:文件大小():統計在ç失敗的文件/項目/ Abrahallen/administrasjon/ExempelPåadmin.txt:\ XAMPP \ htdocs中\ files.php上線
警告 :ReadFile的(文件/項目/ Abrahallen/administrasjon/ExempelPåadmin.txt):未能打開流:在C無這樣的文件或目錄:\ XAMPP \ htdocs中\ files.php上線
究竟是什麼問題?請更具體一些,如果有的話添加錯誤消息。 – Corubba
那麼腳本無法找到像「æøå」這樣的字母的文件,但會發現其他文件不包含這些字符 – Johngear