Tak, mogę.
Nie powiedziałeś serwerowi Mysql, jakiego kodowania danych chcesz.
Mysql może dostarczyć dowolne kodowanie w przypadku, gdy kodowanie Twojej strony różni się od kodowania przechowywanych danych. I przekoduj go w locie.
W związku z tym należy poinformować go o preferowanym kodowaniu klienta (Twój kod PHP jest tym klientem bazy danych).
Domyślnie jest to latin1
. Tak więc, ponieważ nie ma takich symboli w tabeli znaków latin1, zamiast tego zwracane są znaki zapytania.
Istnieją dwa sposoby, aby powiedzieć mysql, jakiego kodowania chcemy:
- nieco bardziej preferowanym jest mysqli_set_charset() funkcja (metoda w twoim przypadku).
- mniej preferowanym jest
SET NAMES
zapytanie.
Ale tak długo, jak poprawnie używasz rozszerzenia mysqli, nie ma to większego znaczenia. (choć nie jesteś)
Zauważ, że w mysql to kodowanie nazywa się utf8
, bez myślników i spacji.