Иногда возникают проблемы с моим приложением Laravel при загрузке файлов с umlauts в их имени файла. Поэтому я хотел бы преобразовать имена файлов перед загрузкой (например, Ä становится Ae). Это было бы очень легко с простым str_replace
. Однако, кажется, что есть некоторые проблемы с кодировкой загруженного имени файла. Чтобы локализовать точную проблему, я попробовал следующие вещи.
echo $file->getClientOriginalName();
выводит Änderung.pdf
Однако следующие строки возвращают false:
if ($file->getClientOriginalName() == "Änderung.pdf") {
return true;
else {
return false;
}
Когда я выводю каждый символ $file->getClientOriginalName();
Похоже, Андерунг. pdf
Но mb_detect_encoding($file->getClientOriginalName());
выводит UTF-8
.
Кажется, что имя файла - UTF-8 и может выводить умляуты, однако имя файла Ä не является реальным Ä. Не могли бы вы помочь мне решить эту проблему?