رفتن به مطلب
برای استفاده از انجمن و عضـویت کلیک کنید.
جستجو در
  • تنظیمات بیشتر ...
نمایش نتایجی که شامل ...
جستجو در ...

انجمن های تخصصی کمیاب اسکریپت

انجمن هاي تخصصي کمياب اسکريپت، محيطي جهت تبادل اطلاعات تخصصي براي وب مستران

  • پشتيباني آنلاين 24/7
  • آموزش هاي تخصصي
  • رفع مشکلات کاربران
MRahmad

نحوه ذخیره کاراکترهای ایموجی در Mysql

پست های پیشنهاد شده

MRahmad    85

مدیر سایت

نحوه ذخیره کاراکترهای ایموجی در Mysql

homenav-flats.png

درود خدمت تمامی همراهان کمیاب اسکریپت، بنده مدت ها مشکل ذخیره ایموجی ها رو در پایگاه داده mysql داشتم، تمامی آموزش های سطح نت رو هم تست می کردم اما جوابی نمی گرفتم (آموزش ها به صورت دقیق توضیح ندادند به همین منظور خروجی نمی گرفتم) تا اینکه خودم مشکل رو تونستم برطرف کنم.

قطعاً اگه سرویس وبلاگدهی، یا یک سرویس اشتراکی داشته باشید یا بخواید خدمات ایموجی رو به کاربرانتون ارائه بدید، نیاز به چند مدل ایموجی دارید، بعضی از ایموجی ها به صورت تصویر هستند که با تگ img توی html می تونید اون رو ذخیره یا فراخوانی کنید، اما بعضی از ایموجی ها مانند (🦅) به صورت متنی هستند، حالا ما وقتی این متن رو توی پایگاه داده ذخیره می کنیم بعد از ذخیره شدن متوجه میشیم که تعدادی علامت سوال توی پایگاه داده ذخیره شده و ایموجی به صورت صحیح نشون داده نمی شه !

 

راه حل :

1 - ابتدا در phpMyadmin دیتابیس خود را انتخاب کنید و به قسمت Operations بروید.

سپس در قسمت Table options گزینه Collation را برابر utf8mb4_unicode_ci بگذارید.

image.png

2- خب تا اینجا کاراکترهای ایموجی در دیتابیس شما به درستی ذخیره می شوند.

حالا برای نمایش صحیح کاراکترها در php نیز ، در دستور اتصال به دیتابیس خود ، charset را برابر utf8mb4 قرار دهید. (این دستور مربوط به mysqli هست

<?php

  $db = new mysqli($server, $user, $password, $database_name); 
  $db->set_charset('utf8mb4');

?>

خط اول که اتصال mysqli هست، خط دوم تعیین کننده کاراکتر ها هست، خب برای pdo بعد از اتصال خط دوم رو به صورت زیر تغییر میدیم

$db->exec("SET NAMES utf8mb4");

با انجام مراحل بالا از این پس کاراکترهای ایموجی در دیتابیس شما به درستی ذخیره می شوند.

توجه داشته باشید، بسیاری از برنامه نویس ها برای نمایش صحیح متون فارسی کاراکتر های خودشون رو روی utf8 قرار می دهند، برای اینکه ایموجی ها به صورت صحیح نشون داده بشن، شما باید توی برنامتون تکد کد بالای رو بجای utf8 جایگزین کنید.

مثال در pdo (utf8) :

$db->exec("SET NAMES utf8");

که باید به کد زیر تغییر پیدا کنه :

$db->exec("SET NAMES utf8mb4");

این مقاله تماماً توسط کمیاب اسکریپت تهیه شده، لطفاً در صورت بازنشر لینک منبع رو فراموش نکنید...

دوستدار همیشگی شما، تیم تحریریه کمیاب اسکریپت

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

Join the conversation

You can post now and register later. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به عنوان یک لینک به جای

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.


  • کاربران آنلاین در این صفحه   0 کاربر

    هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.

×
×
  • جدید...