我正在嘗試批量重命名PHP文件夾中的文件。雖然我在重音字符方面存在問題,但它大部分都在工作。PHP文件名編碼轉換問題
帶有重音字符的文件名示例爲ÅRE_GRÖN.JPG
。
我想將該文件重命名爲ARE_GRON.JPG
。
如果我讀的文件是這樣的:
<?php
$path = __DIR__;
$dir_handle = opendir($path);
while ($file = readdir($dir_handle)) {
echo $file . "\n";
}
closedir($dir_handle);
...而且頁面顯示AÌŠRE_GRÖN.JPG
。
如果我將header('Content-Type: text/html; charset=UTF-8');
添加到我的腳本的開頭,它會顯示正確的文件名,但rename()
函數似乎對這兩種方式都沒有任何影響。
這是我已經試過:
while ($file = readdir($dir_handle)) {
rename($file, str_replace('Ö', 'O', $file)); # No effect
rename($file, str_replace('Ö', 'O', $file)); # No effect
}
我要去哪裏錯了?
如果您認爲我使用錯誤的工具進行工作,請說出口。如果有人知道如何用Bash腳本實現這一點,請告訴我。我沒有Bash印章。
你在Windows或Linux? – hek2mgl 2013-02-12 21:54:39
您的PHP腳本是否編碼爲UTF-8? – 2013-02-12 21:56:05
既然他說bash,我想他是指bash(1),這將建議Lunix。 – 2013-02-12 21:56:21