0
MSSQL veritabanından alınan verileri MariaDB veritabanına eklemek istediğimde Incorrect string value: '\xF0\x9F\x98\x8A</...' for column `Sample`.`questions`.`Body` at row 1 hatası alıyorum.
An unhandled exception occurred while processing the request.
MySqlException: Incorrect string value: '\xF0\x9F\x98\x8A</...' for column `Sample`.`questions`.`Body` at row 1
MySqlConnector.Core.ResultSet.ReadResultSetHeaderAsync(IOBehavior ioBehavior) in ResultSet.cs
, line 49
MySqlException: Incorrect string value: '\xF0\x9F\x98\x8A</...' for column `sample`.`questions`.`Body` at row 1
MySql.Data.MySqlClient.MySqlDataReader.ActivateResultSet() in MySqlDataReader.cs
, line 116
DbUpdateException: An error occurred while updating the entries. See the inner exception for details.
Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.Execute(IRelationalConnection connection)
Hatanın sebebi ve çözümü ne olabilir? Body kolonu collation utf8_turkish_ci olarak ayarlı.
0
MariaDB, MySQL tabanlı olduğu için MariaDB'de utf8 sadece UTF-8'de 3 bayt ile temsil edilebilen Unicode karakterlere izin verir. Bu sebepten eğer insert edilen verinin içinde bu kurala uygun olmayan veri varsa ahata alırsınız.
Çözüm için kolonun collation değerini utf8mb4 yani utf8mb4_turkish_ci olarak değiştirmek sorunu çözecektir. Sunucu karakter (character_set_server) değerini utf8mb4 olarak değiştirmek de sorunu çözecektir.
Cevap yazabilmek için üye girişi yapmalısınız.
Eğer uzmanim.net üyesiyseniz giriş yapabilirsiniz: üye girişi yap
uzmanim.net'e üye olmak çok kolaydır: hemen kayıt ol