Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql]Polskie znaki
Forum PHP.pl > Forum > Przedszkole
mczlowiek
witam , na mojej strronie www.tktbet.lua.pl za choinke nie mogę dojść do tego aby prawidłowo zostały wyświetlana polskie znaki, wszędzie mam te "krzaczki" co zrobić aby pozbyć się tego problemu?
kodowanie na stronie mam tak ustawione:
  1. <meta http-equiv="content-type" content="text/html; charset=utf8_polish_ci />

i takie same mam ustawione w bazie danych, a jednak i tak wszedzie sa krzaczki. proszę o pomoc
helping
  1. <meta http-equiv="content-type" content="text/html; charset=utf8 />

Sprobuj dac to... I kolejna sprawa w czym kodzisz? Moze program zapisuje w innym formacie niz w UTF8 np.notatnik ma domyslne kodowanie ANSI...
mczlowiek
właśnie piszę w notatniku wszystko, jak zmienilem tak jak napisałeś to dopiero się krzaczków naległo!
Max Damage
W notatniku to trochę szaleństwo. Ściągnij sobie chociaż jakiś darmowy program np. TEN, ja mam wpisane tak i jest ok:
  1. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
mczlowiek
niesety nic nie pomogło, jak mam ustawiony iso-8859-2 to nie wyświetla mi ą i ś, reszta jest ok, najgorsze to że w panelu administratora wyświetla wszystko w porządku, tylko na stronie te choler... winksmiley.jpg krzaczki są!
Shili
Jeśli jesteś pewien, że prócz deklaracji kodowania masz dokument zapisany jako utf-8, to jeszcze sprawdź jakie masz kodowanie w bazie danych. Dla pewności dodam, że utf8_polish_ci to metoda porównywania znaków, a nie kodowanie.
mczlowiek
pewien to nie jestem, bo nie wiem gdie to sprawdzic ?

# System kodowania znaków dla MySQL: UTF-8 Unicode (utf8)
#
System porównań dla połączenia MySQL:uttf_unicode_ci
VegA
Kod
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />



Następnie wchodzisz na tą stronę Generator z windows-1250 na iso-8859-2. na tej stronie możesz generować kod, żeby robił krzaczki winksmiley.jpg Gdy masz iso-8859-2 on te krzaczki czyta jako ąćśł itp. winksmiley.jpg

Przykład:
żźćńłśąęó [generuje na] żĽćńł¶±ęó [czyta na stronie tak] żźćńłśąęó
mczlowiek
no ale to jest z leksza bez sensu. Wszystko co wrzuce na strone bede musiał konwertowac ? dla mnie stata czasu, jak to wszystko ugryźć, aby strona bezproblemowo wyswietlała polskie znaki?
VegA
To wpisz sobie na stronie tak tongue.gif

Kod
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250" />


Teraz masz napewno PL znaki tongue.gif
mczlowiek
Zacznijmy od początku:
BAZA DANYCH:
System kodowania znaków dla MySQL: UTF-8 Unicode (utf8)
System porównań dla połączenia MySQL: uttf8_unicode_ci

STRONA WWW
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />

Jak to ugryźć aby wszystko wyświetlało sie OK?

Cytat(VegA @ 8.07.2008, 13:28:42 ) *
To wpisz sobie na stronie tak tongue.gif

Kod
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250" />


Teraz masz napewno PL znaki tongue.gif


ale wytłumacz mi dlaczego tak się dzieje?
co w tym wszystkim było nie tak?
VegA
Sam niewiem czemu tak biggrin.gif Nigdy się nad tym nie zastanawiałem smile.gif Jak używałem kiedyś programu Fornt Page to tam zawsze używał kodowania windows-1250 i tak się nauczyłem tego. Poczytaj coś w necie np.

http://www.kurshtml.boo.pl/html/strony_kodowe,jezyki.html
http://www.kurshtml.boo.pl/html/polskie_znaki,zielony.html
Shili
@Vega
Jak nie wiesz, to nie wprowadzaj innych w błąd. Mają wszystkie znaki, jakie ma windows-1250, a utf, jako nazwa kodowania może obsłużyć ich o niebo więcej.

Kodowanie cp-1250 to jedna z największych porażek kodowania w ogóle i ostatnie, którego proponowałabym używać.
Jeśli baza danych jest zakodowana w utf, na stronie zadeklarowane utf, to podejrzewam że po prostu pisałeś ją w innym kodowaniu. Innymi słowy sama deklaracja nie równa się temu, że strona będzie w utf, trzeba ją jeszcze zapisać jako utf.
mczlowiek
ok, jak możesz żucić okiem na stronę: www.tktbet.lua.pl
część tekstu rozpoznaje polskie znaki część nie, dlatego ja już na prawdę nie wiem jak to wszystko zrobić.
Jak zapisać to jako utf?
Jak zrobić aby wszystko hulało bez problemów?
piotrooo89
przekonvertuj strony na utf i 0 problemu zrobisz raz będziesz miał spokój.
mczlowiek
tylko jak to zrobić?
piotrooo89
notepad++ ma taką opcje albo ściągnij sobie program gżegżółka.
mczlowiek
jezu, ja juz jestem głupi z tego wszystkigo!
na prawde nie wiem co zrobić , jak przerobie czcionke w gżegżółkce to co za kazdym razem bede musial przerabiac wszystki wprowadzane dane?
piotrooo89
ja konvertowałem w niej z utf na iso i nie musiałem nic poprawiać. nie wiem jak sie zachowa w twojej sytuacji. przetestuj.
mczlowiek
no dobrze, tylko jak tos ie robi?
piotrooo89
tutorial dla nie wiedzących albo wiedzących inaczej:

1. ściągasztu
2. instalujesz
3. otwierasz
4. dodajesz plik poprzez kliknięcie na białym tle i wybraniu opcji dodaj plik (patrz jakie to przebiegłe)
5. wybierasz kodowanie
6. klikasz Start
mczlowiek
ok, czyli w bazie danych co mam ustawić, czy mam zostaiwć tak jak mam?
potem wszystkie strony "przerabiam" w gżegżółce, wrzucam na serwer i powinno byc ok?, a w meta jakie kodowanie ustawic?
dadexix
Cytat
potem wszystkie strony "przerabiam" w gżegżółce, wrzucam na serwer i powinno byc ok?, a w meta jakie kodowanie ustawic?
tak wszystko powinno byc ok, w meta ustaw utf-8:)

Albo jak masz notepad++ to u góry menu "format" i klikasz "encode to utf8", potem tylko zapisujesz i wrzucaszna server:)
pikasso
Też miałem ten problem no ale sobie poradziłem i o dziwo wszystko działa poprawnie.
ja korzystam z PhpMyAdmin więc zrobiłem tak:

http://localhost/phpMyAdmin/ --> następnie wybieramy nasza bazę danych --> zakładka Operacje --> wybieramy metoda porównywania napisów i dopiero tam zmieniamy na (latin2_general_ci)

a w kodzie php tworzymy takie zapytanie

  1. <?php
  2. mysql_query('SET CHARSET latin2');
  3. ?>


uwaga musi się ono znajdować przed zapytaniem do bazy danych podaje przyklad:

  1. <?php
  2. mysql_select_db("kst2008");
  3. mysql_query('SET CHARSET latin2'); 
  4. $query = "SELECT * FROM `klient`"; 
  5. $results = mysql_query($query);
  6. $num_results = mysql_num_rows($results);
  7. ?>
mczlowiek
Cytat(dadexix @ 8.07.2008, 15:33:07 ) *
tak wszystko powinno byc ok, w meta ustaw utf-8:)

Albo jak masz notepad++ to u góry menu "format" i klikasz "encode to utf8", potem tylko zapisujesz i wrzucaszna server:)

próbowałem wszystkimi sposobami i nadal są krzaczki!
jak jeszcze można to ugryźć?
piotrooo89
jeśli gżegżółka Ci nie pomogła ja nie znam już innych sposobów, trzeba ręcznie
mczlowiek
jeszcze jedno pytanie, co to za błąd?

  1. <?php
  2. [b]Warning[/b]: session_start() [[url="http://tktbet.lua.pl/administracja/function.session-start"]function.session-start[/url]]: Cannot send session cache limiter - headers already sent (output started at /home/freehost/t/k/tktbet/www/administracja/index.php:1) in [b]/home/freehost/t/k/tktbet/www/administracja/index.php[/b] on line [b]2[/b]
  3.  ďťżďťżďťż
  4. ?>
piotrooo89
zapytaj wujka google on wie wszystko: http://www.google.pl/search?q=Cannot+send+...lient=firefox-a
mczlowiek
nie rozumiem za bardzo, bo odkąd zmieniłem na kodowanie utf8 to wyskaukje mi ten blad, wczzesniejbylo wsztstko w porzadku
piotrooo89
do sesji musi być UTF-8 bez BOM
Shili
Musisz pamiętać, żeby kodować w utf-8 bez znaku BOM.
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.