Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]Problem z polskimi znakami w tytule się się sypią w treści są OK
Forum PHP.pl > Forum > Przedszkole
grzemach
Witam,
Jak w temacie, mam stronę kodowaną w UTF-8, w bazie mam 'utf8_unicode_ci' a strona wygląda tak: http://infoenterprise.pl/?news=MTg= dodam że treść która znajduje się w nagłówku strony <title></title> to jest DOKŁADNIE ta sama (wyciągnięta przed generowanie strony) która jest trochę niżej w tytule newsa.

Przekonwertowałem bazę na 'latin2_general_ci' i dalej jest dokładnie tak samo, jak by strona zupełnie ignorowała kodowanie, ale jak zmieniłem informację o kodowaniu w
  1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
na iso-8859-2 strona się zupełnie wysypała.

Spotkał się ktoś z czymś takim już? Jak można rozwiązać taki problem?

Pozdrawiam
JoShiMa
Jeszcze plik musisz zapisać w odpowiednim kodowaniu.
grzemach
Pliki mam kodowane w UTF-8. Piszę w eclipse a to jest domyślne kodowanie
golaod
Tak szczególnie wtedy kiedy plik na którym się dzieją operacje ma zupełnie inne kodowanie smile.gif
ferrero2
I po raz kolejny ten sam temat :
Jeśli coś pobierasz z bazy :
użyj
Kod
mysql_query("SET NAMES 'utf8'");


Za dobre wyświetlanie znaków na stronie odpowiedzialne są cztery rzeczy :
1. Poprawnie zapisany plik (np w notepad ++ wybrana opcja kodowania na UTF8)
2. Poprawny meta tag : <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
3. Poprawnie wybrana opcja kodowania w bazie danych mysql - czyli: utf8_polish_ci
4. Wysłanie jako pierwszego zapytania do bazy takiego jak wyżej.

Zawsze działa exclamation.gif
grzemach
dodałem
Kod
mysql_query("SET NAMES 'utf8'");

Cytat(ferrero2 @ 27.08.2008, 13:23:54 ) *
1. Poprawnie zapisany plik (np w notepad ++ wybrana opcja kodowania na UTF8)

Mam poprawnie zakodowaną stronę bo na reszcie strony jest wszystko poprawnie
Cytat(ferrero2 @ 27.08.2008, 13:23:54 ) *
2. Poprawny meta tag : <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

jak byś sprawdził w źródle jest tak
Cytat(ferrero2 @ 27.08.2008, 13:23:54 ) *
3. Poprawnie wybrana opcja kodowania w bazie danych mysql - czyli: utf8_polish_ci

Zmieniłem przed chwilą na takie kodowanie - nie pomogło
Cytat(ferrero2 @ 27.08.2008, 13:23:54 ) *
4. Wysłanie jako pierwszego zapytania do bazy takiego jak wyżej.

Wysyłam, zrobiłem wszystko jak piszesz, ale nadal w tytule mam krzaki a w treści poprawie wyświetlane znaki. Jak podkreślam tytuł strony i nagłówek to jest ten sam tekst, pochodzący z tego samego zapytania i nie rozumiem dlaczego w jednym miejscu wyświetla się poprawnie w drugim już błędnie.
Sławo
A jakiej przeglądarki używasz do sprawdzenia wyników swojej pracy??
decha-design
jak zmieniasz w meta na iso-8859-2 to i plik .php czy tam .html również musisz zapisać w odpowiednim kodowaniu ... używasz eclipse tak? na bank jest wybór kodowania w tym edytorze =)
grzemach
Wiem, ale ja chcę używać utf-8 smile.gif. a to jest dla mnie po prostu bardzo dziwny problem z którym się jeszcze nigdy nie spotkałem... i nie mam pojęcia jak go rozwiązać sad.gif
decha-design
To spróbuj moze z funkcją iconv()?

Mi w niektórych przypadkach pomaga ... ale powinieneś sobie poradzić bez niej ...

http://pl2.php.net/manual/pl/function.iconv.php
grzemach
sprawdzę tą funkcję smile.gif, ale to już nie dzisiaj, na dzisiaj mam coś innego w planach. Jutro jak dam radę odezwę się z wynikiem.
----------------
EDIT

Znalazłem błąd, strona już się prawidłowo wyświetla, ale teraz niech się dowiem dlaczego tak się zrobiło...

Problem zniknął gdy usunąłem strtolower($title)... tylko zastanawia mnie dlaczego ta funkcja mi zamieszała... pewnie tego się już nie dowiem smile.gif

Pozdrawiam i dzięki za pomoc.
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.