سلام شرمنده مشکل تایپی بود فرمت utf8mb4_persian_ci هست ولی بعضی از ایموجی ها رو ساپورت نمیکنه ارور میخوره مشکل من اینه اروره هست.
سلام دوست عزیز
کانکشن پیشفرض MySQL لاراول به صورت پیشفرض از کاراکتر ست utf8 استفاده میکنه که نمیتونه شکلک ها رو ذخیره کنه و معمولا با این خطا مواجه میشیم :
SQLSTATE[HY000]: General error: 1366 Incorrect string value...
برای حل این مشکل کانکشن mysql در config/database.php رو به صورت زیر اصلاح کنید :
'mysql' => [
'driver' => 'mysql',
[...]
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
[....]
این مشکل معمولا به دلیل عدم پشتیبانی بانک اطلاعاتی از کاراکترهای UTF-8 همه جانبه بوده و برای رفع آن میتوانید این دو راهحل را امتحان کنید:
۱- تغییر کاراکترست علامتی دیتابیس از utf8_persian_ci به utf8mb4_persian_ci گاهی اوقات نیاز است تا برنامهها یا سیستمهای مختلف از کاراکترستهای پشتیبانی شده توسط MySQL پشتیبانی کنند.بنابراین امکان دارد که تغییر کاراکترست در دیتابیس به UTF-8MB4 نیاز داشته باشد. در صورت استفاده از مایاسکیوال، باید دستور زیر را در دیتابیس اجرا کنید:
ALTER DATABASE database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
همچنین برای فیلدهای خاص میتوانید از دستور زیر استفاده کنید:
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
در نهایت، از تمامی پشتیبانها مطمئن شوید که UTF-8MB4 را پشتیبانی میکنند.
۲- استفاده از کاراکترهای Emoji بصورت جایگزین. ممکن است بعضی از کاراکترهای Emoji با کاراکترهای UTF-8 متداول تفاوتهایی داشته باشند که دیتابیس ممکن است آنها را پشتیبانی نکند. برای رفع این مشکل، میتوانید از جایگزینی کاراکترهای Emoji استفاده کنید. به عنوان مثال، برای کاراکتری مانند 🤖 میتوانید از کد HTML معادل آن یعنی 🤖 استفاده کنید که دیتابیس با آن سازگار است.
امیدوارم این راهحلها به شما کمک کند مشکل را حل کنید.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟