sql >> Databasteknik >  >> RDS >> Mysql

PHP:problem med att mata ut utf8 från MySQL-databas med PDO

Det finns flera felpunkter när man arbetar med UTF8:

  • se till att tabellen är utf8

    Använd SQL-kommandot Show Variables; för att kontrollera MySQL-teckeninställningarna för tabellen.

  • infogade data är utf8

    Du kan prova verktyg som phpMyAdminer eller Administratör för att kontrollera om
    data är korrekt infogade. Försök att infoga data via verktyget manuellt. När du infogar via script, använd inte grundläggande strängfunktioner. Använd alltid deras mbstringalternativ. Ställ in mb_internal_encoding( 'UTF-8' ); för att låta PHP hantera UTF-8 internt.

  • hämtad data är utf8

    Jag skulle bara använda $pdo->exec("SET NAMES utf8"); och släpp resten. EftersomSET NAMES x motsvararSET character_set_client = x; SET character_set_results = x; SET character_set_connection = x;

  • visade data är utf8

    Om detta visas på en HTML-sida, glöm inte att ställa in metataggen eller rubriken
    "Content-Type: text/html; charset=utf-8" .




  1. Uppdatera ett databaspostkonto i SQL Server (T-SQL)

  2. Tabellvärderad parameter i lagrad procedur och Entity Framework 4.0

  3. Sammanfoga tabeller i SQL

  4. Vad är skillnaden mellan utf8_general_ci och utf8_unicode_ci?