Ja, det kan jag.
Du berättade inte för Mysql-servern vilken datakodning du vill ha.
Mysql kan tillhandahålla vilken kodning som helst om din sidas kodning skiljer sig från lagrad datakodning. Och koda om den i farten.
Därför måste den informeras om klientens föredragna kodning (din PHP-kod är den databasklienten).
Som standard är det latin1
. Därför, eftersom det inte finns några sådana symboler i teckentabellen latin1, returneras frågetecken istället.
Det finns två sätt att berätta för mysql vilken kodning vi vill ha:
- en något mer föredragen är mysqli_set_charset() funktion (metod i ditt fall).
- mindre föredragen är
SET NAMES
fråga.
Men så länge du använder mysqli-tillägget på rätt sätt spelar det ingen roll. (även om du inte är det)
Observera att i mysql kallas denna kodning utf8
, utan bindestreck eller mellanslag.