neb 0 Zgłoś post Napisano Sierpień 6, 2008 Witam wszystkich, Niedawno zauważyłem, że w moim programie php korzystającym z mysql istnieje pewien problem: jeśli dodam do bazy tekst ze znakami takimi jak … – „ “ ” lub znaki obcymi jak np. è , to gdy chcę ten tekst pobrać z bazy wyświetlają się one jako znaki zapytania (?). HTML i PHP jest w UTF-8, do mysql zawsze wysyłam SET NAMES 'utf8' , czyli wszędzie kodowanie jest takie samo, więc to chyba nie ono jest przyczyną. Co więc może nią być? Będę wdzięczny za odpowiedź. Od wczoraj się nad tym głowię. Szukałem w internecie czy ktoś już miał taki problem, ale za bardzo nie wiem jak to ująć. Dziwne jest to, że z polskimi znakami nie ma problemu a z np. è jest. Myślałem, ze może to wina mojej przeglądarki (brak odpowiednich czcionek lub coś takiego), ale na innych stronach wyświetlają mi się è itp. Udostępnij ten post Link to postu Udostępnij na innych stronach
sproject 0 Zgłoś post Napisano Sierpień 6, 2008 Na 100% jest to problem z kodowaniem, ale jaki konkretnie - ciężko powiedzieć. //Wymyśliłem. Zapewne wpisujesz te znaki bezpośrednio, a one mają swój UTFowy znacznik. Musisz korzystać z niego... Tutaj masz ich wykaz: http://www.utf8-chartable.de/unicode-utf8-table.pl?htmlent=1 Udostępnij ten post Link to postu Udostępnij na innych stronach
neb 0 Zgłoś post Napisano Sierpień 6, 2008 Sprawdziłem kilka znaków i działa - dziękuję! tylko, jesli dobrze zrozumiem, mam teraz dla kazdego tekstu wrzucanego do bazy robić kilkadziesiąt str_replace(znak, kod, $aaa)? Czy może jest jakaś funkcja która to robi automatycznie? Udostępnij ten post Link to postu Udostępnij na innych stronach
sproject 0 Zgłoś post Napisano Sierpień 6, 2008 Zdaje się, że konieczna będzie ręczna zamiana znaków. Udostępnij ten post Link to postu Udostępnij na innych stronach
jarek 4 Zgłoś post Napisano Sierpień 6, 2008 gżegżółka? Udostępnij ten post Link to postu Udostępnij na innych stronach
sproject 0 Zgłoś post Napisano Sierpień 6, 2008 gżegżółka? Notatnik? xD Udostępnij ten post Link to postu Udostępnij na innych stronach
semilor 0 Zgłoś post Napisano Sierpień 6, 2008 Czy może jest jakaś funkcja która to robi automatycznie? htmlentities() Udostępnij ten post Link to postu Udostępnij na innych stronach
Noone 19 Zgłoś post Napisano Sierpień 6, 2008 A w jaki sposób w php i html to robisz? Wysyłasz nagłówki czy meta? Udostępnij ten post Link to postu Udostępnij na innych stronach
neb 0 Zgłoś post Napisano Sierpień 6, 2008 A w jaki sposób w php i html to robisz? Wysyłasz nagłówki czy meta? Pliki zapisane są w UTF-8, meta jest ustawione na UTF-8 i nagłowek zrobiłem na "application/xhtml+xml; charset=utf-8". Zrobiłem taki test: ----------------------------------------------------- $a = <problematyczne znaki>; echo $a; <dodanie do bazy $a> $a_new = <odczytanie z bazy $a> echo $a_new ----------------------------------------------------- Pierwsze 'echo' wyswietla się poprawnie, drugie - nie, czyli z tego by wynikało, że winna jest baza danych. htmlentities() Działa! ... ale zamienia też na znaczniki polskie litery, więc i tak musiałbym póżniej robić kilka str_replace(kod, polska_litera,$a) Udostępnij ten post Link to postu Udostępnij na innych stronach
Noone 19 Zgłoś post Napisano Sierpień 7, 2008 To w takim razie jaką masz w bazie metodę porównywania napisów (per kolumna/tabela)? Chodzi o kolumna varchar collate... przykładowo. Udostępnij ten post Link to postu Udostępnij na innych stronach
neb 0 Zgłoś post Napisano Sierpień 7, 2008 Dokładnie się na tym nie znam ... oto co jest w confie, to chyba coś z tego bedzie: character_set_results: latin1 character_set_server: latin1 character_set_system: utf8 collation_connection: latin1_swedish_ci collation_database: latin1_swedish_ci collation_server: latin1_swedish_ci Na razie poradziłem sobie tak, że wszystkie dane zapisywane do bazy przepuszczam przez htmlentities(), a odczytywane z niej przez html_entity_decode(). Udostępnij ten post Link to postu Udostępnij na innych stronach
Noone 19 Zgłoś post Napisano Sierpień 7, 2008 Ustaw to poprawnie na utf-8 to nie będzie problemu. I zobacz http://l.tworzenie-stron-www.org/artykuly/...Na_Stronach_Www na dole (masz też odpowiedni link do dokumentacji) Udostępnij ten post Link to postu Udostępnij na innych stronach