![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 0 Dołączył: 7.05.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Mam taki skrypt:
Kodowanie wszędzie ustawione na UTF-8 obrazek wyświetla się prawidłowo jednak file_exist() i rename() nie widzi tego pliku. Jest to mi potrzebne do zmiany nazw w większej ilości plików. W nazwach mogę znaleźć się nie tylko polskie litery ale też litery innych krajów. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 706 Pomógł: 108 Dołączył: 12.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Przepuść nazwę pliku przez utf8_decode (IMG:style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 0 Dołączył: 7.05.2006 Ostrzeżenie: (0%) ![]() ![]() |
Zrobiłem tak:
I zadziałało. Jednak akurat działa tylko na literze "ó" po wpisaniu: Już nie działa. Serwer mam na localhoście pod windows'em może w tym jest problem? Czy naprawdę nie ma dobrego uniwersalnego sposobu na zmianę nazwy? Ten post edytował Regss 4.12.2011, 17:40:27 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 76 Pomógł: 1 Dołączył: 5.09.2007 Ostrzeżenie: (0%) ![]() ![]() |
Czy naprawdę nie ma dobrego uniwersalnego sposobu na zmianę nazwy? Nie (IMG:style_emoticons/default/smile.gif) Dlatego, że windows do kodowania polskich nazw plików używa `windows-1250` wg php: http://se2.php.net/manual/en/mbstring.supp...d-encodings.php Wspierają jedynie 1251 oraz 1252. Podobno iconv wspiera konwertowanie do 1250, ale nie wiem z jakim powodzeniem, na pewno nie w domyśle, trzeba mu te bibliotekę dograć. Polskie znaki + Windows, mógło być gorsze połączenie ? (IMG:style_emoticons/default/biggrin.gif) |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 0 Dołączył: 7.05.2006 Ostrzeżenie: (0%) ![]() ![]() |
Ehh.. już nie chodzi o ten windows bo chyba 99,9% serwerów hostingowych stoi na linuxie/unixie ale problem w tym, że nawet na takim serwerze nie mogę sobie poradzić.
Niestety potrzebuję tego dlatego, iż użytkownicy mojego skryptu będą dostarczać do niego dane w postaci plików wyeksportowanych automatycznie z całkiem innego programu w postaci "tytuł.jpg" a zmianą nazw ma się zająć sam skrypt. Wymyśliłem coś takiego jednak nie wiem jakie to będzie miało skutki na razie działa prawidłowo na kilku europejskich językach.
Tylko czemu funkcja mb_detect_encoding() nie zwraca poprawnie kodowania przecież powinna zwrócić windows-1250 a zwraca ISO-8859-1? |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 76 Pomógł: 1 Dołączył: 5.09.2007 Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem dlaczego wykrył ISO, być może dlatego, że dałeś mu tylko 3 opcje, a ta była mu najbliższa chociaż to absurd bo polska ma -2, a nie -1.
Widzę, że listujesz te pliki, po przekonwertowaniu wyświetlają się prawidłowo (bez krzaczków)? |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 0 Dołączył: 7.05.2006 Ostrzeżenie: (0%) ![]() ![]() |
Po przekonwertowaniu z windows-1250 na utf-8 znaki wyświetlane są prawidłowo bez krzaków. Próbując konwertować z niby wykrytego ISO-8859-1 wychodzą krzaki. Żeby zmienić nazwę pliku lub żeby file_exists zwróciło true robię tak:
Najlepsze, że działa to na serwerach unixowych. Tylko przydało by się prawidłowo wykrywać kodowanie aby skrypt uczynić bardziej uniwersalnym. Ten post edytował Regss 6.12.2011, 10:11:43 |
|
|
-seorin- |
![]()
Post
#8
|
Goście ![]() |
Witam,
Ciekaw jest czy znalazł ktoś może rozwiązanie na ten temat? Gdyż mam ten sam problem. Otóż próbowałem już robić to na localhoscie i na windowsie i na ubuntu i mam ten sam problem wszędzie. Pomyślałem że zrobię coś takiego:
Szybkie objaśnienie: Funkcja remove_pl() usuwa polskie znaki z nazwy. Co zauważyłem: O ile na windzie standardowo nic nie chodziło to na ubuntu ma problem jedynie z niekturymi plikami z kodowanie UTF-8, wszystkie te z rozszerzeniem ASCII idą bez problemu. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 18.09.2025 - 23:53 |