Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Nowy katalog a polskie znaki
Forum PHP.pl > Forum > XML, AJAX
lidia
Witam!

Mam do dopracowania wyświetlanie polskich liter w sporych rozmiarów projekcie napisanym w advajaxie i kodowanym w UTF-8 (takie jest założenie).

W projekcie jest możliwość dodawania plików poprzez file managera, wyświetlanego na warstwie.

Problem polega na tym, że jeśli zakładam nowy katalog z polskimi literkami w file managerze wszystko jest poprawnie wyświetlane, natomiast jesli zakładam katalog pod windowsem - file manager wyświetla mi krzaczki zamiast polkich znaków sadsmiley02.gif Podobnie jest w przeciwna stronę: katalogi założone pod file managarem, windows pokazuje z krzaczkami.

Próbowałam już funkcji konwertujących z jednego kodowania na drugie i nic nie pomogły.
W jakim kodowaniu windows zapisuje nowo powstałe katalogi? Bo zamiana z win1250 ani iso8859-2 na utf8 ni przyniosły rezultatów.

Pliki php czcionek dołączone do projektu sa kodowane w iso8859-2, jednak zmiana ich kodowania na utf-8 nie naprawiła błędu.

Zaznaczę, że szukam już rozwiązania od paru dni, przeczytałam niemalże wszystkie wątki o polskich literkach na forum, ale nie znalazłam nic pasującego do mojego problemu.

Z góry dziękuję za wszystkie rady.
Lidka
revyag
Nigdy nie tworzę plików czy katalogów z polskimi znakami bo wiem że są problemy z tym. Tobie też radzę pozbyć się tego. Poza tym do czego Ci potrzebne polskie znaki w nazwach ?
nevt
Witam. Trochę zagmatwane, ale postaramy się rozwikłać.

Po pierwsze - używanie znaków narodowych w nazwach plików i / lub katalogów jest wysoce niewskazane. Powoduje problemy przy lokalizacjach projektu, przy odwołaniach typu url i wiele, wiele innych. Jeżeli to możliwe, zrezygnuj z tej idei, a dane od użytkownika filtruj, np. funkcją:
  1. <?php
  2. $tekst = strtr($tekst, "ąćęłńóśźżĄĆĘŁŃÓŚŹŻ", "acelnoszzACELNOSZZ");
  3. ?>

to oczywiście obrazowy przykład, są też inne metody pozbywania się "ogonków"
To rozwiąże twój podstawowy problem.

Po drugie - jeżeli z niejasnych powodów MUSISZ stosować znaki narodowe w nazwach katalogów i plików, to rozważ konsekwencję, że nie masz kontroli nad sposobem kodowania nazw plików przesyłanych od użytkownika systemu... Użytkownik nie musi mieć windows pl, on nawet nie musi miec linux'a, a jego język może składać się wyłącznie z "krzaczków" (vide Japonia). Natomiast w pewnych, konkretnych przypadkach da się to skontrolować, ale w twoim poscie jest za mało danych, żeby wskazać kierunki rozwiązań ...

Czy pliki są dodawane po stronie serwera, czy po stronie użytkownika?
Jakie jest ich przeznaczenie?
Dlaczego mają mieć znaki narodowe w nazwach?
Dla kogo przeznaczony będzie system?

itp. itd.

No i na koniec, nie wiem co rozumieć przez 'Pliki php czcionek dołączone...'?
Chodzi o stronę kodową plików php? Czy może do projektu dołączone są jakieś definicje czcionek?

Ogólnie nie widzę prostego i pewnego rozwiązania takiego problemu. Projekt w AJAX (UTF-8), wspierany przez skrypty php (ISO8859-2 - dlaczego nie utf-8 exclamation.gifquestionmark.gif) ma zarządzać plikami kodowanymi w win1250...

Pozdrawiam.
lidia
Po pierwsze BARDZO dziękuje za odpowiedź na mój zagmatwany problem smile.gif

Cytat(nevt @ 22.10.2007, 14:29:50 ) *
Czy pliki są dodawane po stronie serwera, czy po stronie użytkownika?

Pliki sa dodawane na serwerze, przez stronę www.

Cytat
Jakie jest ich przeznaczenie?

Umożliwiają dodanie zdjęć lub dokumentów do stronki

Cytat
Dlaczego mają mieć znaki narodowe w nazwach?

Nie muszą, ale nie każdy klient musi być wtajemniczony i rozumiec dlaczego się nie stosuje znaków narodowych dry.gif

Cytat
Dla kogo przeznaczony będzie system?

System przeznaczony jest głównie dla firm, żeby ułatwic im zarządzanie stronami www.

Cytat
nie wiem co rozumieć przez 'Pliki php czcionek dołączone...'?
Chodzi o stronę kodową plików php? Czy może do projektu dołączone są jakieś definicje czcionek?

Właśnie przed chwilka mnie uświadomili, że wszędzie gdzie jest inne kodowanie niż utf8 jest błędem...

pozdrawiam
Lidka
nevt
I to jest konkluzja i rozwiązanie. Wszyskie skrypty, strony, kody źródłowe i bazy danych w projekcie powinny być w kodowaniu utf-8. Przy odwołaniach do plików po stronie serwera robimy konwersje utf-8 - win-1250 (lub odwrotnie) i powinno działać. Jednak nie rezygnowałbym z usunięcia znaków narodowych (wszelkich, nie tylko polskich) z nazw przesyłanych plików. Przecież nie musisz zapisywać plku na serwerze pod dokładnie taką samą nazwą, z jaką przesłał go user. Znacznie podniesie to 'przenoszalność' projektu i chociaż w tym aspekcie uniezalezni go od rodzaju systemu plików.

Pozdrawiam i powodzenia.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.