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 utf8
sebelum Anda meminta/memasukkan ke dalam database - gunakan
DEFAULT CHARSET=utf8
saat 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)