Sistem manajemen database Mysql, mulai dari versi 4.1, mendukung bekerja dengan pengkodean. Masalah utama dengan mereka muncul saat menghubungkan database dengan Php. Dalam hal ini, pengkodean konten pangkalan dan koneksi harus cocok.
instruksi
Langkah 1
Perhatikan bahwa penyebab umum masalah dengan Mysql adalah bahwa penyandian default untuk database diatur ke latin1. Sebagian besar klien yang terhubung juga dikonfigurasi untuk itu, Anda memasukkan data dan melihat hasil menggunakannya juga. Meskipun pengkodean ini dengan benar menampilkan alfabet Cyrillic, kode tabel simbol di dalamnya tidak sesuai dengan karakter Cyrillic yang sebenarnya. Oleh karena itu, pencarian dan pengurutan data dapat menghasilkan hasil yang sama sekali tidak terduga.
Langkah 2
Ubah pengkodean database menjadi yang menampilkan karakter Sirilik dengan benar, misalnya, utf-8 atau cp1251. Untuk melakukan ini, konversikan data dari penyandian Latin1 ke cp1251. Jangan gunakan konversi data sederhana, karena kode karakter salah. Oleh karena itu, Anda harus menyingkirkan ikatan penyandiannya. Untuk melakukan ini, ubah tipe data dan karakter menjadi data biner. Gunakan kueri Ubah tabel "Masukkan nama tabel" t1 ubah c1 c1 gumpalan.
Langkah 3
Jalankan kueri untuk mengubah pengkodean database Mysql, untuk ini gunakan contoh berikut: Ubah tabel "Masukkan nama tabel" t1 ubah c1 c1 teks chatacter set "Masukkan nama pengkodean yang diinginkan, misalnya, cp1251". Tidak ada satu byte data pun yang diubah secara fisik, tetapi aturan pembentukan karakter berubah. Selanjutnya, untuk mengubah pengkodean database, Anda dapat menggunakan kueri konversi data sederhana.
Langkah 4
Harap perhatikan bahwa saat mengubah penyandian tabel di bidang yang berisi indeks, Anda harus menghapusnya dan membuatnya kembali, mis. membangun kembali di semua tabel database. Saat beralih ke encoding, pastikan klien visual mendukung unicode. Misalnya, klien SQLyog salah menampilkan konten tabel yang menyimpan data dalam pengkodean utf-8.