Pembaruan:
Jawaban singkat - Anda hampir harus selalu menggunakan utf8mb4 charset dan utf8mb4_unicode_ci pengumpulan.
Untuk mengubah basis data:
ALTER DATABASE dbname CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Lihat:
-
Komentar Aaron pada jawaban ini Bagaimana caranya membuat MySQL menangani UTF-8 dengan benar
-
Panduan konversi:https://dev.mysql. com/doc/refman/5.5/en/charset-unicode-conversion.html
Jawaban Asli:
MySQL 4.1 dan di atasnya memiliki set karakter default UTF-8. Anda dapat memverifikasi ini di my.cnf . Anda file, ingat untuk mengatur keduanya klien dan server (default-character-set dan character-set-server ).
Jika Anda memiliki data yang ingin Anda konversi ke UTF-8, buang database Anda, dan impor kembali sebagai UTF-8 dengan memastikan:
- gunakan
SET NAMES utf8sebelum Anda meminta/memasukkan ke dalam database - gunakan
DEFAULT CHARSET=utf8saat membuat tabel baru - pada titik ini klien dan server MySQL Anda harus dalam UTF-8 (lihat
my.cnf). ingat bahasa apa pun yang Anda gunakan (seperti PHP) juga harus UTF-8. Beberapa versi PHP akan menggunakan pustaka klien MySQL mereka sendiri, yang mungkin tidak mengetahui UTF-8.
Jika Anda ingin memigrasikan data yang ada, ingatlah untuk membuat cadangan terlebih dahulu! Banyak pemotongan data yang aneh dapat terjadi ketika segala sesuatunya tidak berjalan sesuai rencana!
Beberapa sumber daya:
- menyelesaikan migrasi UTF-8 (cdbaby.com)
- artikel tentang Kesiapan fungsi php UTF-8 (perhatikan beberapa informasi ini sudah usang)