Как изменить тип кодирования имени файла? - PullRequest
0 голосов
/ 12 сентября 2018

Я собираюсь изменить тип кодирования моего имени файла с utf-8 на big5, и это то, что я до сих пор:

$path = "stu_resume/104206002_87";
$result =iconv("utf-8", "big5", $path);
echo $result;
echo mb_detect_encoding($result);

В папке 104206002_87 есть 2 файла: 104206002_87_ 履歷, 104206002_87_ 自傳.
После выполнения приведенного выше кода я обнаружил, что в папке ничего не изменилось , Кто-нибудь знает, как решить проблему? Большое спасибо.

1 Ответ

0 голосов
/ 12 сентября 2018

iconv() не изменяет файлы.Он просто конвертирует строку.В этом случае преобразуемая строка - ""stu_resume/104206002_87" - поскольку эта строка содержит только символы ASCII, при преобразовании из UTF-8 в Big5 ничего не изменится.

Если вы хотите переименовать файлы в каталогес этим именем вам нужно будет сделать это явно, например

$iter = new DirectoryIterator("stu_resume/104206002_87");
foreach ($iter as $file) {
    if (!$file->isDot()) {
        $old_name = $file->getPathname();
        $new_name = iconv("utf-8", "big5", $old_name);
        rename($old_name, $new_name);
    }
}
...