[mysql] nie zapisują się znaki takie jak wielokropek, dolny cudzysłów
[mysql] nie zapisują się znaki takie jak wielokropek, dolny cudzysłów
#1
Napisany 06 sierpień 2008 - 15:58
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.
#2
Napisany 06 sierpień 2008 - 16:02
//Wymyśliłem.
Tutaj masz ich wykaz: http://www.utf8-char...le.pl?htmlent=1
#3
Napisany 06 sierpień 2008 - 16:36
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?
#4
Napisany 06 sierpień 2008 - 17:05
#5
Napisany 06 sierpień 2008 - 17:08
Hosting WWW @ ViPower.pl
Serwery VPS / dedykowane @ ViHost.pl
#6
Napisany 06 sierpień 2008 - 17:12
#7
Napisany 06 sierpień 2008 - 17:29
Cytuj
#8
Napisany 06 sierpień 2008 - 18:42
#9
Napisany 06 sierpień 2008 - 22:01
Cytuj
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.
Cytuj
#10
Napisany 07 sierpień 2008 - 06:13
#11
Napisany 07 sierpień 2008 - 10:29
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().
#12
Napisany 07 sierpień 2008 - 12:18
1 Użytkowników czyta ten temat
0 użytkowników, 1 gości, 0 anonimowych użytkowników














