Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Apa perbedaan antara rangkaian karakter utf8mb4 dan utf8 di MySQL?

UTF-8 adalah pengkodean panjang variabel. Dalam kasus UTF-8, ini berarti bahwa menyimpan satu titik kode memerlukan satu hingga empat byte. Namun, pengkodean MySQL yang disebut "utf8" (alias "utf8mb3") hanya menyimpan maksimal tiga byte per titik kode.

Jadi rangkaian karakter "utf8"/"utf8mb3" tidak dapat menyimpan semua poin kode Unicode:ia hanya mendukung rentang 0x000 hingga 0xFFFF, yang disebut "Pesawat Multibahasa Dasar ".Lihat juga Perbandingan penyandian Unicode .

Inilah yang (versi sebelumnya dari halaman yang sama di) dokumentasi MySQL harus mengatakan tentang hal itu:

Kumpulan karakter bernama utf8[/utf8mb3] menggunakan maksimal tiga byte per karakter dan hanya berisi karakter BMP. Pada MySQL 5.5.3, set karakter utf8mb4 menggunakan maksimal empat byte per karakter mendukung karakter tambahan:

  • Untuk karakter BMP, utf8[/utf8mb3] dan utf8mb4 memiliki karakteristik penyimpanan yang identik:nilai kode yang sama, penyandian yang sama, panjang yang sama.

  • Untuk karakter tambahan, utf8[/utf8mb3] tidak dapat menyimpan karakter sama sekali , sedangkan utf8mb4 membutuhkan empat byte untuk menyimpannya. Karena utf8[/utf8mb3] tidak dapat menyimpan karakter sama sekali, Anda tidak memiliki karakter tambahan di kolom utf8[/utf8mb3] dan Anda tidak perlu khawatir tentang mengubah karakter atau kehilangan data saat memutakhirkan data utf8[/utf8mb3] dari versi lama MySQL.

Jadi, jika Anda ingin kolom Anda mendukung penyimpanan karakter di luar BMP (dan biasanya Anda menginginkannya), seperti emoji , gunakan "utf8mb4". Lihat juga Apa karakter Unicode non-BMP yang paling umum digunakan? .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL di Cloud - Pro dan Kontra Amazon RDS

  2. Apa cara yang diketahui untuk menyimpan struktur pohon dalam DB relasional?

  3. Memuat file .sql dari dalam PHP

  4. Pencarian MySQL dan mengganti beberapa teks di bidang

  5. mysql_fetch_array, mysql_fetch_assoc, mysql_fetch_object