Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][MySQL]utf-8 polskie znaki w bazie
Forum PHP.pl > Forum > Przedszkole
bcb
Postanowiłem zrobić stronkę w całości w UTF-8 jako iż strona ma być w dwóch wersjach językowych.
Wszytko działa nie mam krzaków na stronie www, czy coś w tym stylu.

Problem dotyczy tego iż polskie znaki są trzymane w bazie w postaci krzaczków (w utf-8).
Kiedy chcę zrobić zapytanie wyświetlenia danych zaczynających się na jakąś literkę stosuję:
Kod
SELECT * FROM tabela WHERE pole LIKE '$x%'

Wszystko ładnie działa do momentu kiedy pod zmienną $x nie przekazuje polskiego znaku.
probowałem zastosować iconv jednak to też nic nie daje.

Poniekąd rozwiązałem problem:
Stworzyłem tabele mysql z polskimi literkami w utf-8 wyciągam je i odpowiednio porównuje, wtedy powyższe zapytanie działa, tylko nie wiem dlaczego ale kiedy chce coś wyświetlić na literkę Ą wyświetlają się również wpisy na: Ć, Ę.
To samo jest z Ł, Ń, Ś. Faktycznie reprezentacja tych znaków w utf-8 wygląda identycznie.

Podobne problemy prawdopodobnie będą się również pojawiać w wyszukiwarce na stronie kiedy ktoś wyśle słowo do wyszukania z polskim znakiem.

Może ktoś wie jak rozwiązać ten problem w inny, w pełni działający sposób.

Na koniec jeszcze, czy jest sens tworzenia strony w utf-8? Czy jeśli serwis jest dwujęzyczny, mogę go w całości prezentować w iso-8859-2 ? To by rozwiązało w całości powyższe problemy.
sebik
Wydaje mi się, że powinieneś cały serwis zrobić w 8859-2. Nie ma tu znaczenia jak zakodowana bedzie strona, przeciez w 8859-2 sa wszystkie znaki uzywane w jezyku angielksim.
bcb
Właściwie tak. Podobnie myślę, dlatego też zadałem to pytanie na sam koniec.
Nie mniej jednak są serwisy gdzie po wybraniu "english version" kodowanie strony zmieniane jest na utf-8, szczerze nie wiem po co to się robi.
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.