تبدیل Encoding اطلاعات MySQL از cp1252 به یونیکد

شاید برای شما هم اتفاق افتاده باشد که یک سایت قدیمی (خیلی قدیمی) را به سروری جدیدتر جابجا کرده باشید و ناگهان تمام اطلاعات فارسی شما به جای حروف فارسی، تبدیل به حروفی عجیب و غریب و غیرقابل خواندن تبدیل شده باشد. دلیل بروز این مشکل این است که Encoding دیتابیس سایت قدیمی شما به جای utf-8 روی cp1252 یا arabic تنظیم شده است. برای حل این مشکل، شما باید از دستور MySQL زیر، برای اصلاح فیلدهای خراب و تبدیل آنها به یونیکد استفاده کنید:
UPDATE `your_table_name` set your_field_name = convert(binary convert(your_field_name using latin1) using utf8)
این دستور را برای کلیه فیلدهای به هم ریخته اجرا کنید تا مشکل برطرف شود.

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

آیا این پاسخ به شما کمک کرد؟

 پرینت این مقاله

در همین زمینه

ارتقاء MySQL از نسخه 5.5 به 5.7 یا MariaDB 10.2 و جدیدتر

برای ارتقاء نسخه MySQL از 5.5 به 5.6 یا 5.7 به این نحو عمل می کنیم: لطفا توجه کنید که در صورت...

قوانین ModSecurity که بیشترین هشدارهای اشتباه را می دهند

این لیست برخی از قوانین مربوط به modsecurity هستند که اصطلاحا بیشتر هشدار های false positives را...

ایجاد ایمیل در پلسک ویندوز با استفاده از دستورات CLI پلسک

برای ایجاد ایمیل ها توسط دستورات CLI پلسک در ویندوز، می توانیم از این دستور استفاده کنیم. استفاده...

چگونه Strict Mode را در MySQL 5.7 غیرفعال کنیم؟

برای اینکه SQL Mode را غیر فعال کنیم (در MySQL 5.7 به صورت خودکار فعال می شود) باید یک فایل در...

نحوه بررسی سرور لینوکسی برای وجود malware در سایت ها

جهت بررسی امنیت سرور لینوکس، می توانیم از سیستم Linux Malware Detect استفاده کنیم. برای نصب آن...

Powered by WHMCompleteSolution