Wygląda na to, że obsługa plików w PHP nie działa z pewnymi znakami (np. €) zakodowanymi UTF-8 , jeśli ścieżka jest zakodowana na stałe, a plik php zapisany jako UTF- 8.Obsługa plików PHP ze znakami specjalnymi UTF-8
Czy można to zrobić z wszystkimi (lub większością zachodnich znaków)? Czy istnieje biblioteka, która to umożliwia? Ponieważ nie mogłem znaleźć żadnego.
Na przykład folder o nazwie äöü&()éèàâêûô@$+ç%&=
! £ _; {[]} ~ '¢ ¬§ ° # @ | ... ... € `w systemie Windows nie będzie działał z parametrem is_dir().
EDIT: ROZWIĄZANIE
Ok, znalazłem rozwiązanie. Nie testowałem jeszcze w pełni, nie jestem pewien, czy to jest niezawodny jeszcze i nie wiem, czy to jest najlepsza praktyka, ale kodowanie string z powrotem do ANSI wydaje się zrobić lewy (przynajmniej dla napisanego ciągu).
$string = iconv(mb_detect_encoding($string, "auto"), 'Windows-1252', $string);
Domyślam się, że powinno to działać z domyślnym ustawieniem większości zachodnich komputerów z systemem Windows.
Witam. Dzięki za twoją odpowiedź. Dałeś mi pomysł. Próbuję go zakodować z powrotem do ANSI z czymś takim '$ string = iconv (mb_detect_encoding ($ string," auto "), 'Windows-1252', $ string);' i wygląda na to, że działa. Nie testowałem jeszcze w pełni, ale działa dla napisanego przeze mnie napisu (na razie). – huuerequer