Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]wyswietlanie listy plikow - polskie znaki - nowy szczegol, krzaki - jak zwykle :)
phoenix84
post
Post #1





Grupa: Zarejestrowani
Postów: 218
Pomógł: 0
Dołączył: 14.04.2004
Skąd: Słupsk, Nowy Sącz

Ostrzeżenie: (0%)
-----


sprawa wyglada tak...

kiedy wczytuje zawartosc katalogu x, gdzie sa pliki, ktorych nazwa zawiera polskie znaki... dostaje na ekran '?' zamiast polskiego znaku...

plik 'Pl-ąęśćńźłżó.ogg' wyświetlany jest jako: 'Pl-(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ?.ogg'

strona kodowana w utf-8... zabawa w iconv nie pomaga, bo niestety nie wiem co to jest za kodowanie... czy ktos mial podobny problem? (nie znalazlem nic satysfakcjonujacego na googlach, ani tutaj w wyszukiwarce...)

co moze byc przyczyna?

pozdrawiam

Phoenix

Ten post edytował phoenix84 25.05.2008, 21:25:17
Go to the top of the page
+Quote Post
Shili
post
Post #2





Grupa: Zarejestrowani
Postów: 1 085
Pomógł: 231
Dołączył: 12.05.2008

Ostrzeżenie: (0%)
-----


Jaki system?
Ogólna zasada jest taka, że w nazwach plików nie używa się polskich znaków diakrytycznych, a skoro zczytujesz pliki, to pewnie z serwera. Ważny jest system, choćby dlatego, że bez tej wiedzy trudno będzie ustalić jakiego kodowania używa.
Go to the top of the page
+Quote Post
phoenix84
post
Post #3





Grupa: Zarejestrowani
Postów: 218
Pomógł: 0
Dołączył: 14.04.2004
Skąd: Słupsk, Nowy Sącz

Ostrzeżenie: (0%)
-----


pliki pochodza oryginalnie z wikislownika, ale kiedy program wykryje, ze plik zostaly zaktualizowany, to sa automatcznie sciagane na moj dysk twardy i z niego odtwarzane, by bylo szybciej... odczyt odbywa sie zazwyczaj na winxp lub vista, ale wiki skad tez czasem czytam nie wiem na czym stoi (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

do tego tam nie ma tylko polskich znakow, a inne jak chinskie czy arabskie tez... (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

im wiecej znasz, tym wiecej podaj, bedzie dla tych co beda mieli problem w przyszlosci, a beda szukac...

pozdro

Phoenix

Ten post edytował phoenix84 25.05.2008, 18:22:04
Go to the top of the page
+Quote Post
Shili
post
Post #4





Grupa: Zarejestrowani
Postów: 1 085
Pomógł: 231
Dołączył: 12.05.2008

Ostrzeżenie: (0%)
-----


Xp i Vista to kodowania windows-1250 (cp-1250) i latin2 (iso-8859-2) pod warunkiem oczywiście, że jest to system polski (lub języków pokrewnych).

Prawdopodobnie wszystko się rozchodzi przez to cp-1250.
Go to the top of the page
+Quote Post
ayeo
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 1 202
Pomógł: 117
Dołączył: 13.04.2007
Skąd: 127.0.0.1

Ostrzeżenie: (0%)
-----


Popraw tytuł tematu na zgodny z zasadami działu Przedszkole!

http://automaciej.jogger.pl/2008/03/08/jak...olskich-znakow/

Pozdrawiam!
Go to the top of the page
+Quote Post
phoenix84
post
Post #6





Grupa: Zarejestrowani
Postów: 218
Pomógł: 0
Dołączył: 14.04.2004
Skąd: Słupsk, Nowy Sącz

Ostrzeżenie: (0%)
-----


1. system jest angielski, nie polski
2. wpisanie cp-1250 w iconv tez nie pomoglo... (tekst w ogole zniknal, jakby iconv nie rozpoznal w ogole takiego typu kodowania)
3. ten link co mi podal ayeo nie zawiera mojego problemu, poniewaz mi zamiast kazdego polskiego znaku wywala pytajnik, a nie krzak... czyli jakby juz cos z dysku zle zczytywal...
4. a jaki tytul posta jest zgodny z zasadami przedszkola... nie chce lamac regul... ale o tej nic nie wiem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Shili
post
Post #7





Grupa: Zarejestrowani
Postów: 1 085
Pomógł: 231
Dołączył: 12.05.2008

Ostrzeżenie: (0%)
-----


A masz na tym systemie zainstalowane polskie czcionki i polskie kodowanie?

Twój system nie rozpoznaje kodowania, bo go zwyczajnie nie zna. Dlatego wszystko zastępuje znakami zapytania i jeśli mam rację, to nic na to nie poradzisz.
Przy ściąganiu konwertuj pliki to nazw bez ogonków - dość prosta operacja i nie będziesz mieć problemu.

Ten post edytował Shili 25.05.2008, 18:53:26
Go to the top of the page
+Quote Post
phoenix84
post
Post #8





Grupa: Zarejestrowani
Postów: 218
Pomógł: 0
Dołączył: 14.04.2004
Skąd: Słupsk, Nowy Sącz

Ostrzeżenie: (0%)
-----


hmmm

w systemie pisze normalnie... zeby wstawic ogonek, to wciskam ALT (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) wiec chyba wszystko jest w porzadku... problem pojawia sie wtedy, kiedy chce sprawdzic czy mam juz taki plik na dysku... czyli musze sprawdzic poprawnosc nazwy... a skrypt mi mowi, ze pliku nie ma... a jest... (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) kasowanie ogonkow tez nic nie da... no bo jak mam skasowac ogonek w chinskich znakach?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) no bo na co mi wymowa polskich slow (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ... problem jest w innych jezykach... kasowanie ogonkow nawet w europejskich jezykach nie ma sensu... bo jak odroznisz slowa kat i kąt... (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

jak moge w takim razie powiedziec skryptowi, jakie o jest kodowanie...? bo na pewno jest na to jakis sposob... nie wierze, ze na calym swiecie skrypty sa w stanie odczytywac nazwy plikow zapisane tylko lacinskimi znakami bez diakrytow...

pozdrawiam

Phoenix

dodatkowy fakt...

kiedy robie link do tych plikow, to wszystko dziala... czyli wynika z tego, ze cos z funkcja wczytywania katalogu jest nie tak...

ten testowy kawalek kodu wyglada tak:

  1. <?php
  2. $folder = dir("$sciezka_wymowa");
  3.  
  4. echo '<ul>';
  5. while($plik = $folder->read())
  6.  {
  7.  echo '<li><a href="' .$plik. '">' .$plik. '</a></li>';
  8.  }
  9. echo '</ul>';
  10. ?>


a efekt jest taki:

.
..
De-at-gut.ogg
En-us-good.ogg
Fr-bon.ogg
Fr-mauvais.ogg
Pl-dobry.ogg
pl-z?y.ogg
Ru-(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ?.ogg

z tym, ze z wypunktowaniem... (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

jak sie komus chce to moze go przetestowac... (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

pozdro

Phoenix

to moze inaczej...

pytanie brzmi:
za pomoca jakiej funkcji moge sprawdzic czy istnieje plik zawierajacy nielacinski znak w nazwie... bo file_exists juz go nie widzi...

xXx

Ten post edytował phoenix84 25.05.2008, 19:53:26
Go to the top of the page
+Quote Post
Pilsener
post
Post #9





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


Uzyj funkcji w stylu: http://pl2.php.net/manual/pl/function.mb-detect-encoding.php (pewnie iconv też ma taką funkcję, która powinna rozpoznać kodowanie znaków w stringu). Znając kodowanie możesz je zmienić na inne (choćby iconv).
Go to the top of the page
+Quote Post
phoenix84
post
Post #10





Grupa: Zarejestrowani
Postów: 218
Pomógł: 0
Dołączył: 14.04.2004
Skąd: Słupsk, Nowy Sącz

Ostrzeżenie: (0%)
-----


Dzieki za te funkcje... ale nie pomoglo...

wskazala, ze jest to kodowanie: 'ascii'... niestety iconv tez nic z tym nie moze zrobic... bo juz funkcja readdir zwraca ord=63 czyli pytajnik dla kazdego nielacinskiego znaku... jednym slowem klapa... (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) nigdy by mi nie przyszlo do glowy, ze php jest tak ograniczone... (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

ciekawe jak chlopaki z wiki to obeszli... (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

pozdro i dzieki

Phoenix
Go to the top of the page
+Quote Post
Kicok
post
Post #11





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

Ostrzeżenie: (0%)
-----


iconv" title="Zobacz w manualu PHP" target="_manual miało prawo nie rozpoznać kodowania CP-1250, spróbuj:
  1. <?php
  2.  
  3. $res = iconv( 'CP1250', 'UTF-8', $text );
  4.  
  5. ?>



Jeśli znowu będzie pusta strona, to włącz sobie wyświetlanie błędów.
Ewentualnie możesz jeszcze sprawdzić CP1252 jeśli to angielski system - chociaż nawet nie wiem czy w tym zestawie są polskie znaki ;]

Ten post edytował Kicok 27.05.2008, 08:26:32
Go to the top of the page
+Quote Post
phoenix84
post
Post #12





Grupa: Zarejestrowani
Postów: 218
Pomógł: 0
Dołączył: 14.04.2004
Skąd: Słupsk, Nowy Sącz

Ostrzeżenie: (0%)
-----


zadne z rozwiazan nie pomoglo... bledy mialem ustawione na wyswietlanie... notice'y wlaczylem i dalej cisza...

btw... nie chce by to zabrzmialo nie milo... ale czy jest tu ktos, komu php odczytuje pliki z polskimi znakami w nazwie? bo sie zaczalem obawiac, ze moze nikomu... a wszyscy chca pomoc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

chyba jedynym rozwiazaniem zostanie umieszczenie tych plikow w bazie danych... choc jak sobie wyobraze, ze trzeba to zrobic recznie, bo skryt ich nie zobaczy, to rece opadaja...

pozdro

Phoenix
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 12:50