Обработка файлов PHP; Специальные символы в именах папок - PullRequest
1 голос
/ 07 февраля 2010

Я использую rename () для перемещения файла из одной папки в другую с помощью php.

Он отлично работает с папками, в которых не задействованы шведские символы.

Есть ли способ обойти это? (кроме изменения имен папок на что-то без специальных символов)

Сайт полностью в формате utf-8 ...

Ответы [ 3 ]

2 голосов
/ 07 февраля 2010

Кажется, что это немного серое, если посмотреть главу руководства по rename() и примечания пользователя. Нет ни слова о том, какую кодировку следует использовать. В любом случае, если файловая система поддерживает это, должна быть возможность использовать UTF-8 в именах файлов.

Этот вопрос SO имеет очень умный ответ, чтобы обойти это. Он не на 100% чистокровный, но, вероятно, в большинстве случаев работоспособен.

Если символы, которые вы используете, также доступны в iso-8859-1, вы также можете попробовать простой utf8_decode(). Но это решение не является полным и не идеальным, так как оно не будет работать с персонажами вне карты.

1 голос
/ 07 февраля 2010

Использовать функции нормализации Юникода для нормализации пути к файлу?

filePath = unicodedata.normalize('NFD', filePath);
0 голосов
/ 07 февраля 2010

это похоже на ошибку , которую я не уверен, была ли она решена или нет. Вы можете использовать регулярное выражение для очистки имен файлов / папок . Или, как указывает TheGrandWazoo, вы можете использовать нормализатор .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...