Witam serdecznie.
Też mam problem z kodowaniem polskich znaków w linkach PHP
4.3.11.Opiszę problem, może ktoś zna rozwiązanie, bo funkcje konwersji kodowania nie działają w tym przypadku.
Pliki PDF i DOC są tworzone w MS Windows (XP) i przesyłane przez FTP na serwer Apache.
Pliki mają być dostępne do pobrania i indeksowane przez wyszukiwarki, jako artykuły na stronie, zawierają w nazwach polskie znaki.
Użyłem funkcji
Kod
while (false !== ($file = readdir($handle)))
aby iterować po plikach w katalogu.
Gdy sprawdzam kodowanie zmiennej $file z nazwą pliku, dostaję ASCII:
Kod
echo (mb_detect_encoding($file));
więc aby je zmienić na UTF 8, którego używa moja strona, konwertuję za pomocą
Kod
$file_utf = mb_convert_encoding($file, "UTF-8", "ASCII");
ale po detekcji wiadć, że nadal jest kodowanie ASCII...
Jedyne, co udaje mi się osiągnąć, to zakodowanie url:
Kod
$file_url = rawurlencode($file_url);
jednak nie tylko linki są zakodowane, ale także nazwa pliku przy zapisywaniu go jest "zakrzaczona" w stylu "[...]/Za%BF%F3%B3%E6%20g%EA%9Cl%B9%20ja%9F%F1%20-%20_.pdf" jako "Zażółć gęśłą jaźń - _.pdf", ale link działa i można pobrać plik - jedyny problem to niezrozumiała nazwa.
Na dostępnym serwerze dopiero za półtora miesiąca może zostać przeprowadzone uaktualnienie PHP, więc będę bardzo wdzięczny za wskazówki, jak poprawnie wyświetlić polskie znaki w adresach linków i w treści linków, aby nazwa przy zapisie była poprawna.
Pozdrawiam serdecznie i dziękuję za pomoc. Przypomnę, że chodzi o PHP 4.3.11 i nie wchodzi w grę obejście (rezygnacja z polskich znaków), tylko rozwiązanie. Jeśli znajdę odpowiedź wcześniej, na pewno się podzielę

.