sql >> Databasteknik >  >> RDS >> Mysql

Problem med att infoga utf-8-strängen i databasen och sedan mata ut den till webbsidan

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.



  1. Hur man får en rad i SQLite efter index (inte efter id)

  2. Använda String[] selectionArgs i SQLiteDatabase.query()

  3. Jämföra Galera Cluster Cloud-erbjudanden:Del tre Microsoft Azure

  4. Varför slutar min cfloop efter att ha satt in första id?