Jawaban singkat
Mulai klien dengan opsi --default-character-set=utf8
:
mysql --default-character-set=utf8
Anda dapat mengatur ini sebagai default di /etc/mysql/my.cnf
berkas.
[mysql]
default-character-set=utf8
Jawaban singkat tidak berhasil, baca di bawah
Perintah di atas memaksa character_set_client
, character_set_connection
dan character_set_results
config variabel menjadi utf8
.
Untuk memeriksa nilai untuk semua variabel konfigurasi terkait rangkaian karakter, Anda dapat menjalankan:
show variables like '%char%';
character_set_database
memberi Anda set karakter dari database saat ini (skema) tempat Anda berada. Skema dan tabel dibuat secara default dengan rangkaian karakter yang ditentukan dalam character_set_server
, kecuali jika ditentukan secara eksplisit dalam CREATE
pernyataan.
character_set_server
dapat diubah di my.cnf
berkas:
[mysqld]
character-set-server = utf8
Selain itu tabel dan kolom dapat memiliki rangkaian karakter sendiri yang mungkin berbeda dari tabel atau skema induknya. Untuk secara khusus memeriksa nilai setiap tabel dan kolom dalam database, lihat jawaban ini:Bagaimana cara melihat kumpulan karakter database/tabel/kolom MySQL?
Jika Anda ingin mengubah set karakter tabel dan kolom yang ada, lihat jawaban ini:Bagaimana cara mengonversi seluruh characterset dan collation database MySQL ke UTF-8?
Info lebih lanjut tentang kumpulan karakter koneksi di dokumentasi mysql .
Semuanya disetel ke utf8, tapi saya masih melihat karakter aneh
Bahkan jika semua variabel rangkaian karakter, tabel dan kolom diatur ke utf8
, mungkin ada kasus di mana Anda melihat karakter aneh di layar Anda. Misalnya, seseorang mungkin telah menulis karakter Unicode dalam utf8
kolom, melalui klien dengan latin1
koneksi (misalnya dengan menjalankan mysql --default-character-set=latin1
). Dalam hal ini Anda perlu terhubung ke database dengan rangkaian karakter yang sama dengan nilai yang ditulis. Anda juga dapat mengambil dan menulis ulang melalui penyandian yang benar.
CATATAN :Seperti yang ditunjukkan oleh komentar, utf8
mysql encoding bukanlah implementasi UTF-8 yang benar dan penuh. Jika implementasi penuh UTF-8 diperlukan, seseorang dapat menggunakan utf8mb4
rangkaian karakter:
mysql --default-character-set=utf8mb4
Info lebih lanjut di sini:Apa perbedaan antara charset utf8mb4 dan utf8 di MySQL?