Pobierając jakąś wartość z bazy danych MySQL(metoda porównywania napisów utf8_polish_ci) za pomocą php dostaję krzaczki zamiast polskich znaków. Z poziomu phpmyadmin wszystko w bazie wygląda dobrze... Co mogę zrobić?
Pobierając jakąś wartość z bazy danych MySQL(metoda porównywania napisów utf8_polish_ci) za pomocą php dostaję krzaczki zamiast polskich znaków. Z poziomu phpmyadmin wszystko w bazie wygląda dobrze... Co mogę zrobić?
Zasadniczo są dwa miejsca, gdzie należy ustawić odpowiednie kodowanie znaków. Pierwszym jest połączenie z bazą danych.
$mysqli->set_charset('utf8'); // Dla mysqli
$pdo = new PDO('mysql:dbname=x;host=x;charset=utf8','user','pass'); // Dla PDO
Drugim miejscem jest odpowiednie kodowanie w dokumencie generowanym przez PHP. W przypadku html należałoby ustawić nagłówek.
Content-Type: text/html; charset=utf-8
Dobrze byłoby w samym dokumencie umieścić też poniższy nagłówek meta.
<meta charset="utf-8">