راکت
حل شده

مشکل SQL

7 پاسخ

سلام بنده یک مشکل داره این که در utf8_persian_ci نمیشه بعضی از ایموجی ها رو سیو کرد ارور میده روشی هست که ارور نده ؟!
داخل فیلد قراره 🤖 ساخت ربات سیو شه ولی ارور میخوره

ثبت پرسش جدید

پاسخ‌ها

7
مهدی
مهدی
@mahdidv

تخصص: Backend Developer

بهترین پاسخ

سلام
utf8mb4_unicode_ci
اینو تست کن

MagicalDev
MagicalDev
@magicaldev1

تخصص: Laravel Developer

درود

CREATE TABLE `users` (

) DEFAULT CHARSET = utf8mb4_persian_ci
علی رضا
علی رضا
@reza1275

تخصص: علاقه مند به php

سلام شرمنده مشکل تایپی بود فرمت utf8mb4_persian_ci هست ولی بعضی از ایموجی ها رو ساپورت نمیکنه ارور میخوره مشکل من اینه اروره هست.

شاید پاسخ شما همین‌جا باشد

علی رضا
علی رضا
@reza1275

تخصص: علاقه مند به php

ممنون از پاسخ تست میکنم

MagicalDev
MagicalDev
@magicaldev1

تخصص: Laravel Developer

متن ارور رو بفرستید کامل

فرزاد عامری
فرزاد عامری
@Farzadameri

تخصص: وردپرس

سلام دوست عزیز
کانکشن پیشفرض MySQL لاراول به صورت پیشفرض از کاراکتر ست utf8 استفاده میکنه که نمیتونه شکلک ها رو ذخیره کنه و معمولا با این خطا مواجه میشیم :

SQLSTATE[HY000]: General error: 1366 Incorrect string value...

برای حل این مشکل کانکشن mysql در config/database.php رو به صورت زیر اصلاح کنید :

'mysql' => [
    'driver' => 'mysql',
    [...]
    'charset' => 'utf8mb4',
    'collation' => 'utf8mb4_unicode_ci',
    [....]
محمد شریف احمدی
محمد شریف احمدی
@mrahmadi

تخصص: یک عدد برنامه نویس

این مشکل معمولا به دلیل عدم پشتیبانی بانک اطلاعاتی از کاراکترهای 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 معادل آن یعنی 🤖 استفاده کنید که دیتابیس با آن سازگار است.

امیدوارم این راه‌حل‌ها به شما کمک کند مشکل را حل کنید.

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام