sql >> Databáze >  >> RDS >> Mysql

Jak zajistit, aby MySQL správně zvládalo UTF-8

Aktualizace:

Krátká odpověď – Téměř vždy byste měli používat utf8mb4 znaková sada a utf8mb4_unicode_ci řazení.

Chcete-li změnit databázi:

ALTER DATABASE dbname CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Viz:

Původní odpověď:

MySQL 4.1 a vyšší má výchozí znakovou sadu UTF-8. Můžete si to ověřit v my.cnf soubor, nezapomeňte nastavit obojí klient a server (default-character-set a character-set-server ).

Pokud máte existující data, která chcete převést na UTF-8, vypište databázi a importujte ji zpět jako UTF-8 a ujistěte se, že:

  • použijte SET NAMES utf8 před dotazem/vložením do databáze
  • použijte DEFAULT CHARSET=utf8 při vytváření nových tabulek
  • V tuto chvíli by měl být váš klient a server MySQL v UTF-8 (viz my.cnf ). Pamatujte si, že všechny jazyky, které používáte (například PHP), musí být také UTF-8. Některé verze PHP budou používat vlastní klientskou knihovnu MySQL, která nemusí znát UTF-8.

Pokud chcete migrovat existující data, nezapomeňte je nejprve zálohovat! Když věci nejdou podle plánu, může dojít k mnoha podivným sekáním dat!

Některé zdroje:



  1. Použití aliasového sloupce v klauzuli where v Postgresql

  2. Převeďte desetinný čas na hodiny a minuty

  3. 2 způsoby, jak vrátit seznam propojených serverů v SQL Server pomocí T-SQL

  4. 3 způsoby, jak naformátovat číslo jako procento v PostgreSQL