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

Bagaimana cara memperbaiki kesalahan nilai string yang salah?

PERBARUI untuk jawaban di bawah ini:

Saat pertanyaan diajukan, "UTF8" di MySQL berarti utf8mb3 . Sementara itu, utf8mb4 telah ditambahkan, tetapi sepengetahuan saya MySQL "UTF8" tidak dialihkan ke berarti utf8mb4 .

Itu berarti, Anda harus secara khusus meletakkan "utf8mb4", jika Anda bersungguh-sungguh (dan Anda harus menggunakan utf8mb4 )

Saya akan menyimpan ini di sini alih-alih hanya mengedit jawabannya, untuk memperjelas masih ada perbedaan ketika mengatakan "UTF8"

Asli

Saya tidak akan menyarankan jawaban Richies, karena Anda mengacaukan data di dalam database. Anda tidak akan memperbaiki masalah Anda tetapi mencoba untuk "menyembunyikannya" dan tidak dapat melakukan operasi basis data yang penting dengan data yang rusak.

Jika Anda mengalami kesalahan ini, data yang Anda kirim tidak dikodekan UTF-8, atau koneksi Anda bukan UTF-8. Pertama, verifikasi, bahwa sumber data (file, ...) benar-benar adalah UTF-8.

Kemudian, periksa koneksi database Anda, Anda harus melakukan ini setelah terhubung:

SET NAMES 'utf8mb4';
SET CHARACTER SET utf8mb4;

Selanjutnya, verifikasi bahwa tabel tempat data disimpan memiliki set karakter utf8mb4:

SELECT
  `tables`.`TABLE_NAME`,
  `collations`.`character_set_name`
FROM
  `information_schema`.`TABLES` AS `tables`,
  `information_schema`.`COLLATION_CHARACTER_SET_APPLICABILITY` AS `collations`
WHERE
  `tables`.`table_schema` = DATABASE()
  AND `collations`.`collation_name` = `tables`.`table_collation`
;

Terakhir, periksa pengaturan database Anda:

mysql> show variables like '%colla%';
mysql> show variables like '%charac%';

Jika sumber, transportasi, dan tujuan adalah utf8mb4, masalah Anda hilang;)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ambil TOP 10 Baris Tanpa Menggunakan TOP atau LIMIT? – Pertanyaan Wawancara Minggu Ini #247

  2. Temukan catatan dari satu tabel yang tidak ada di tabel lain

  3. Cara menampilkan tanggal sebagai format iso 8601 dengan PHP

  4. TIME_FORMAT() Contoh – MySQL

  5. Mac OS X - EnvironmentError:mysql_config tidak ditemukan