MySQL wykonuje konwersje zestawu znaków w locie do czegoś, co nazywa się połączeniem zestaw znaków . Możesz określić ten zestaw znaków za pomocą instrukcji sql
SET NAMES utf8
lub użyj określonej funkcji API, takiej jak mysql_set_charset() :
mysql_set_charset("utf8", $conn);
Jeśli zostanie to zrobione poprawnie, nie ma potrzeby używania funkcji takich jak utf8_encode() i utf8_decode().
Musisz także upewnić się, że przeglądarka używa tego samego kodowania. Zwykle robi się to za pomocą prostego nagłówka:
header('Content-type: text/html;charset=utf-8');
(Zauważ, że zestaw znaków nazywa się utf-8 w przeglądarce, ale utf8 w MySQL.)
W większości przypadków zestaw znaków połączenia i zestaw znaków sieciowych to jedyne rzeczy, które musisz śledzić, więc jeśli to nadal nie działa, prawdopodobnie jest coś, co robisz nie tak. Spróbuj trochę z tym poeksperymentować, zwykle pełne zrozumienie zajmuje trochę czasu.