Похоже, что обработка файлов в PHP не работает с определенными символами (например,), закодированными UTF-8, если путь жестко запрограммирован и файл php сохранен как UTF-8.
Можно ли заставить его работать со всеми (или с большинством западных символов)? Есть ли библиотека, которая позволяет это возможно? Потому что я не мог найти.
Например, с äöü&()éèàâêûô@$+ç%&=
папка с именем äöü&()éèàâêûô@$+ç%&=
! £ _; {[]} ~ '¢ ¬§ ° # @ | … € `.
Хорошо, я нашел решение. Я еще не тестировал его полностью, я не уверен, что он еще не проверен, и я не знаю, является ли это лучшей практикой, но кодировка строки обратно в ANSI, похоже, делает трюк (по крайней мере, для строки, которую я опубликовал ).
$string = iconv(mb_detect_encoding($string, "auto"), 'Windows-1252', $string);
Я думаю, это должно работать с настройками по умолчанию большинства западных компьютеров Windows.
Я бы тоже отказался работать с такой папкой! 🙂
Анекдоты, вы можете попытаться сохранить файл как UTF-16, поскольку это должно быть кодирование, которое Windows использует внутренне.