it-swarm-id.com

Bagaimana cara memasukkan karakter utf-8 mb4 (emoji di ios5) di mysql?

Saya menggunakan mysql 5.5.10, dan karakternya adalah

| character_set_client     | utf8mb4                    |
| character_set_connection | utf8mb4                    |
| character_set_database   | utf8mb4                    |
| character_set_filesystem | binary                     |
| character_set_results    | utf8mb4                    |
| character_set_server     | utf8mb4                    |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
| collation_connection     | utf8mb4_general_ci         |
| collation_database       | utf8mb4_general_ci         |
| collation_server         | utf8mb4_general_ci         |

Saya mengubah utf8mb4 dari utf8 untuk emoji iOS5. Mereka diwakili oleh kode 4byte.

Tetapi ketika saya memasukkan 3 emoji smiley, '???' ada di mysql.

Mereka adalah 3F 3F 3F (Hex).

Saya dapat menyimpan emoji iOS4 dengan baik, tetapi tidak untuk iOS5.

Bagaimana saya bisa menyimpan emoji iOS5?

Tolong bantu aku.

55
plenty

Karakter Unicode 4 byte belum banyak digunakan, jadi tidak semua aplikasi di luar sana mendukung sepenuhnya. MySQL 5.5 berfungsi dengan baik dengan karakter 4 byte ketika dikonfigurasi dengan benar - periksa apakah komponen Anda yang lain dapat bekerja dengannya juga.

Berikut beberapa hal lain yang perlu diperiksa:

  • Pastikan semua rangkaian karakter default tabel dan bidang teks Anda dikonversi ke utf8mb4, di samping menetapkan set karakter klien & server, mis. ALTER TABLE mytable charset=utf8mb4, MODIFY COLUMN textfield1 VARCHAR(255) CHARACTER SET utf8mb4,MODIFY COLUMN textfield2 VARCHAR(255) CHARACTER SET utf8mb4; dan seterusnya.

    Jika data Anda sudah dalam karakter utf8, itu harus dikonversi ke utf8mb4 di tempat tanpa masalah. Seperti biasa, buat cadangan data Anda sebelum mencoba!

  • Pastikan juga lapisan aplikasi Anda menyetel karakter koneksi basis data ke utf8mb4. Periksa ini benar-benar terjadi - jika Anda menjalankan versi yang lebih lama dari pustaka klien mysql framework yang Anda pilih, itu mungkin belum dikompilasi dengan dukungan utf8mb4 dan itu tidak akan mengatur charset dengan benar. Jika tidak, Anda mungkin harus memperbarui atau mengompilasinya sendiri.

  • Saat melihat data Anda melalui klien mysql, pastikan Anda menggunakan mesin yang dapat menampilkan emoji, dan jalankan SET NAMES utf8mb4 sebelum menjalankan kueri.

Setelah setiap tingkat aplikasi Anda dapat mendukung karakter baru, Anda harus dapat menggunakannya tanpa korupsi.

93
Nick Baicoianu
65
Mathias Bynens