Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak sprawić, by MySQL poprawnie obsługiwał kodowanie UTF-8?

Aktualizacja:

Krótka odpowiedź - prawie zawsze powinieneś używać utf8mb4 charset i utf8mb4_unicode_ci zestawienie.

Aby zmienić bazę danych:

ALTER DATABASE dbname CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Zobacz:

Oryginalna odpowiedź:

MySQL 4.1 i nowsze mają domyślny zestaw znaków UTF-8. Możesz to zweryfikować w swoim my.cnf plik, pamiętaj, aby ustawić oba klient i serwer (default-character-set i character-set-server ).

Jeśli masz istniejące dane, które chcesz przekonwertować na UTF-8, zrzuć bazę danych i zaimportuj ją z powrotem jako UTF-8, upewniając się, że:

  • użyj SET NAMES utf8 przed zapytaniem/wstawieniem do bazy danych
  • użyj DEFAULT CHARSET=utf8 podczas tworzenia nowych tabel
  • w tym momencie twój klient i serwer MySQL powinny być w UTF-8 (zobacz my.cnf ). pamiętaj, że wszystkie używane języki (takie jak PHP) muszą być również UTF-8. Niektóre wersje PHP będą używać własnej biblioteki klienta MySQL, która może nie być świadoma UTF-8.

Jeśli chcesz przenieść istniejące dane, pamiętaj, aby najpierw wykonać kopię zapasową! Gdy coś nie idzie zgodnie z planem, może się zdarzyć wiele dziwnych cięć danych!

Niektóre zasoby:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wiele rang w jednym stole

  2. ciąg wybranych wartości oddzielony przecinkami w mysql

  3. Środowisko pracy MySQL

  4. MySQL - Jak przestawić kolumny na wiersze?

  5. Jaki jest maksymalny rozmiar MySQL VARCHAR?