یکی از مشکلاتی که گاهی اوقات ممکن است برای وبمستران در زمینه طراحی سایت ایجاد شود، مشکل ذخیره نادرست کلمات و حروف و اعداد فارسی در دیتابیس MySQL هاست می باشد. در این مشکل، حروف و کلمات به صورت علامت سوال یا کاراکترهای متفرقه و ناخوانا ذخیره می شوند و در سایت هم به همان صورت خروجی گرفته می شود. امروزه در اکثر اسکریپت های حرفه ای و هاست های باکیفیت با کانفیگ مناسب، چنین مشکلی معمولا بسیار کم اتفاق می افتد چرا که اکثر اسکریپت های جدید به دلیل پشتیبانی از زبان های عربی، در هنگام نصب دیتابیس سایت شما را به طور خودکار برای ذخیره کلمات فارسی و عربی تنظیم می کنند، اما گاهی اوقات بنا به دلایل نامشخص ممکن است این اتفاق نیفتد و دیتابیس شما دارای مشکل شود. برای حل این مشکل دو راه حل وجود دارد که در این تاپیک از انجمن بی تاک قصد داریم نحوه حل این مشکل را به شما آموزش دهیم.

در کدهای PHP و HTML
اگر اسکریپتی که درحال استفاده هستید را خودتان نوشته باشید، شاید مشکل از نحوه انکودینگ فایل ها باشد. برای حل این مشکل، مطمئن شوید که فرمی که ساخته اید، کاراکترهای UTF-8 را مجاز کرده باشد. برای اینکار کد فرم خود را به این صورت اصلاح کنید:
<form method="post" action="/your/url/" accept-charset="UTF-8">
</form>
قدم بعدی این است که صفحات خروجی سایت خود را به فرمت UTF-8
تبدیل کنید. گاهی اوقات کلمات و اعداد فارسی در دیتابیس به درستی ذخیره شده اند اما به دلیل مشکل قالب در سایت، حروف فارسی به صورت نادرست یا علامت سوال نمایش داده می شود. برای حل این مشکل باید کد زیر را به سورس قالبتان اضافه کنید به گونه ای که بعد از تگ <head>
و بالای تگ <title>
قرار بگیرد:
<meta http-equiv="Content-type" content="text/html; charset=utf-8"/>
حل مشکل از طریق دیتابیس و phpMyAdmin
گاهی اوقات فرم های داخل سایت درست هستند اما دیتابیس شما به گونه ای تنظیم شده که قادر به ذخیره و پردازش کاراکترهای فارسی نیست. برای اینکار وارد phpMyAdmin خود شده و وارد دیتابیس خود شوید. سپس در همان صفحه اول دیتابیس که جدول ها نمایش داده شده اند، روی گزینه Operations کلیک کنید و مطابق تصویر زیر، در قسمت Collation از میان لیست مشخص شده گزینه utf8_General_ci
را انتخاب کنید و طبق تصویر هر دو گزینه زیر آن را تیک بزنید و سپس روی کلید Go کلیک کنید و صبر کنید تا انکودینگ دیتابیس شما تغییر کند:

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