راکت
علی رضا
علی رضا
توسط علی رضا مطرح شد
حل
7 پاسخ

مشکل SQL

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


ثبت پرسش جدید
مهدی
مهدی
تخصص :Backend Developer
@mahdidv3 سال پیشمطرح شد
0

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


MagicalDev
MagicalDev
تخصص :Laravel Developer
@magicaldev13 سال پیشمطرح شد
0

درود

CREATE TABLE `users` (

) DEFAULT CHARSET = utf8mb4_persian_ci

علی رضا
علی رضا
تخصص :علاقه مند به php
@reza12753 سال پیشمطرح شد
0

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


علی رضا
علی رضا
تخصص :علاقه مند به php
@reza12753 سال پیشمطرح شد
0

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


MagicalDev
MagicalDev
تخصص :Laravel Developer
@magicaldev13 سال پیشمطرح شد
0

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


فرزاد عامری
فرزاد عامری
تخصص : وردپرس
@Farzadameri3 سال پیشمطرح شد
0

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

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

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

'mysql' => [
    'driver' => 'mysql',
    [...]
    'charset' => 'utf8mb4',
    'collation' => 'utf8mb4_unicode_ci',
    [....]

محمد شریف احمدی
محمد شریف احمدی
تخصص :یک عدد برنامه نویس
@mrahmadi3 سال پیشمطرح شد
0

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

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


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

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