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 25.05.2008, 18:10:25
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-questionmark.gifquestionmark.gifquestionmark.gifquestionmark.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 25.05.2008, 18:16:52
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 25.05.2008, 18:21:06
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 smile.gif

do tego tam nie ma tylko polskich znakow, a inne jak chinskie czy arabskie tez... 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 25.05.2008, 18:28:09
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 25.05.2008, 18:28:22
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 25.05.2008, 18:45:56
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 smile.gif
Go to the top of the page
+Quote Post
Shili
post 25.05.2008, 18:51:18
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 25.05.2008, 22:22:00
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 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... smile.gif kasowanie ogonkow tez nic nie da... no bo jak mam skasowac ogonek w chinskich znakach?questionmark.gif smile.gif no bo na co mi wymowa polskich slow smile.gif... problem jest w innych jezykach... kasowanie ogonkow nawet w europejskich jezykach nie ma sensu... bo jak odroznisz slowa kat i kąt... 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-questionmark.gifquestionmark.gifquestionmark.gif?.ogg

z tym, ze z wypunktowaniem... smile.gif

jak sie komus chce to moze go przetestowac... 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 26.05.2008, 07:22:35
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 26.05.2008, 21:59:13
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... smile.gif nigdy by mi nie przyszlo do glowy, ze php jest tak ograniczone... smile.gif

ciekawe jak chlopaki z wiki to obeszli... smile.gif

pozdro i dzieki

Phoenix
Go to the top of the page
+Quote Post
Kicok
post 27.05.2008, 08:24:30
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


--------------------
"Sumienie mam czyste, bo nieużywane."
Go to the top of the page
+Quote Post
phoenix84
post 29.05.2008, 01:09:11
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 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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 11:09