sql >> Database >  >> RDS >> Mysql

Hoe MySQL op de juiste manier met UTF-8 omgaat?

Bijwerken:

Kort antwoord - Je zou bijna altijd de utf8mb4 . moeten gebruiken charset en utf8mb4_unicode_ci sortering.

Om de database te wijzigen:

ALTER DATABASE dbname CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Zie:

Oorspronkelijk antwoord:

MySQL 4.1 en hoger heeft een standaard tekenset van UTF-8. U kunt dit verifiëren in uw my.cnf bestand, vergeet niet om beide . in te stellen client en server (default-character-set en character-set-server ).

Als u bestaande gegevens heeft die u naar UTF-8 wilt converteren, dump dan uw database en importeer deze terug als UTF-8 en zorg ervoor dat:

  • gebruik SET NAMES utf8 voordat u de database opvraagt/invoegt
  • gebruik DEFAULT CHARSET=utf8 bij het maken van nieuwe tabellen
  • op dit punt zouden uw MySQL-client en -server in UTF-8 moeten staan ​​(zie my.cnf ). onthoud dat alle talen die je gebruikt (zoals PHP) ook UTF-8 moeten zijn. Sommige versies van PHP gebruiken hun eigen MySQL-clientbibliotheek, die mogelijk niet UTF-8-bewust is.

Als u bestaande gegevens toch wilt migreren, vergeet dan niet eerst een back-up te maken! Er kan heel wat raar hakken van gegevens gebeuren als dingen niet gaan zoals gepland!

Enkele bronnen:



  1. Proberen om een ​​Oracle te exporteren via PL/SQL geeft een datum van 0000-00-00

  2. TIMESTAMPADD() Voorbeelden – MySQL

  3. Het Kapsalon Database Project

  4. Installeer MySQL op een Mac