Incorrect string value: '\xF0\x9F\x98\x8A</...' for column `Sample`.`questions`.`Body` at row 1 hatası

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ı.

alattin alattin (14489)
3 hafta önce sordu

Toplam 1 Cevap


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.

alattin alattin (14489)
3 hafta önce cevaplandı

üyelik gerektirir

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