sql >> Database teknologi >  >> RDS >> Mysql

Sådan får du MySQL til at håndtere UTF-8 korrekt

Opdatering:

Kort svar - Du bør næsten altid bruge utf8mb4 tegnsæt og utf8mb4_unicode_ci sortering.

Sådan ændres databasen:

ALTER DATABASE dbname CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Se:

Oprindeligt svar:

MySQL 4.1 og nyere har et standardtegnsæt UTF-8. Du kan bekræfte dette i din my.cnf fil, husk at indstille begge klient og server (default-character-set og character-set-server ).

Hvis du har eksisterende data, som du ønsker at konvertere til UTF-8, dump din database og importer den tilbage som UTF-8 og sørg for:

  • brug SET NAMES utf8 før du forespørger/indsætter i databasen
  • brug DEFAULT CHARSET=utf8 ved oprettelse af nye tabeller
  • på dette tidspunkt skal din MySQL-klient og -server være i UTF-8 (se my.cnf ). husk at alle sprog du bruger (såsom PHP) også skal være UTF-8. Nogle versioner af PHP vil bruge deres eget MySQL-klientbibliotek, som muligvis ikke er UTF-8-bevidst.

Hvis du ønsker at migrere eksisterende data, skal du huske at tage backup først! Der kan ske en masse mærkelig hakning af data, når tingene ikke går som planlagt!

Nogle ressourcer:



  1. 10 grunde til, at din virksomhed har brug for Microsoft Access

  2. Sådan udføres lagret procedure i MySQL Workbench

  3. Eksporter Oracle-forespørgselsresultater til en HTML-fil, når du bruger SQLcl

  4. Hvad er nyt i MariaDB 10.4