دسته‌ها
کد و دیتابیس

تبدیل سایر انجمن ها به VB بدون مشکل encoding

بزرگترین و سخت ترین مشکلی که هنگام تبدیل انجمن شما ممکن پیش بیاد برهم خوردن Encoding پایگاه داده هنگام تبدیل به فرمت جدید است. در 99% مواقع وقتی شما دارید با مبدل های VB انجمن قبلی خودتون رو تبدیل میکنید تمامی کاراکترها فارسی به صورت ؟ در می آید. برای رفع این مشکل دیشب  تا ساعت 4 صبح بیدار بودم و بالاخره بعد از امتحان هزاران راه به یک راه حل جامع و کامل دست یافتم.

مرحله اول : تنظیم پایگاه داده Vbuelletin به صورت UTF-8
مرحله دوم : ویرایش Config.php
مرحله سوم : ویرایش ImpExconfig.php
مرحله چهارم : ویرایش PHP.ini
مرحله پنجم : نصب VB
مرحله ششم : دستکاری تنظیمات encoding
مرحله هفتم : تغییر Character Set برای زبان پیش فرض
مرحله هشتم : تبدیل فایل زبان فارسی به UTF-8
مرحله نهم : نصب زبان فارسی
مرحله دهم : واردکردن اطلاعات از فروم قبلی

برای مشاهده آموزش کامل مراحل ادامه مطلب را مطالعه کنید

مرحله 1 :

پایگاه داده خود را بسازید و از طریق PHPmyadmin مطمین شوید که Collation آن بر روی utf8_bin تنظیم شده باشد

مرحله 2 :

فایل config.php در شاخه includes را باز کنید و تنظیمات معمول پایگاه داده را انجام دهید و خط زیر را در از حالت comment خارج کنید. با پاک کردن // . سپس فایل را بر روی سرور آپلود کنید

// $config[‘Mysqli’][‘charset’] = ‘utf8’;

مرحله 3 :

فایل impexconfig.php را باز کنید و تنظیمات معمول آن را انجام دهید. کد زیر را پیدا کنید

// Advanced Target
$impexconfig['target']['databasetype'] = 'mysql'; // currently mysql only
$impexconfig['target']['charset'] = '';
$impexconfig['target']['persistent'] = false; // (true/false) use mysql_pconnect
 
// Advanced Source
$impexconfig['source']['charset'] = '';
$impexconfig['source']['persistent'] = false;

سپس آن را همانند کد زیر تغییر داده و فایل را ذخیره کنید و آپلود کنید

 
// Advanced Target
$impexconfig['target']['databasetype'] = 'mysql'; // currently mysql only
$impexconfig['target']['charset'] = 'utf8';
$impexconfig['target']['persistent'] = true;
 
// (true/false) use mysql_pconnect // Advanced Source
$impexconfig['source']['charset'] = 'utf8';
$impexconfig['source']['persistent'] = true;

مرحله 4 :

فایل PHP.ini را باز کنید و تغییرات زیر را در آن اعمال کنید

mbstring.language = Farsi
mbstring.internal_encoding = UTF-8
mbstring.http_input = UTF-8
mbstring.http_output = UTF-8
mbstring.encoding_translation = On
mbstring.detect_order = UTF-8

 

مرحله 5 :

وی بی را به طور معمول نصب کنید. بعد از نصب اطلاعات انجمن قبلی را بازنگردانید. هیچ زبان دیگری را فعلا نصب نکنید

مرحله 6 :

تنظیمات زیر را در محیط مدیریت وی بی اعمال کنید

– در مسیر زیر تمامی کاراکتر ها را پاک کنید

Admin CP -> vBulletin Options -> Censorship Options -> Blank Character Stripper

– گزینه زیر را هم فعال کنید

Admin CP -> vBulletin Options -> Message Posting and Editing Options -> Prevent ‘SHOUTING

مرحله 7 :

مطمین شوید که Character ser زبان شما درست تنظیم شده است

Admin CP -> Languages & Phrases -> Language Manager -> [Edit Settings] -> HTML Character Set

آن را بر روی UTF-8 تنظیم کنید

مرحله 8 :
فایل زبان فارسی خود را باز کنید و تغییرات زیر را در آن اعمال کنید

<?xml version="1.0" encoding="UTF-8"?>
<language name="Tr-Turkce" vbversion="3.6.0" product="vbulletin" type="custom"> <settings>
<options><![CDATA[1]]></options>
<languagecode><![CDATA[tr]]></languagecode>
 <charset><![CDATA[UTF-8]]></charset>

 

مرحله 9 :

زبان جدید را نصب کنید و Character set آن را نیز بر روی UTF-8 تنظیم کنید

مرحله 10 :

اطلاعات انجمن قبلی را طبق دستور العمل های راهنما منتقل کنید.

 اگر هنوز مشکل دارید باید از برنامه ای  که  آقای خدابخش عزیز نوشته اند استفاده کنید.

پی نوشت :  وقتی میخواهی چیزی رو یادداشت کنی که بعدا اگه باز لازم داشتی یادت بیاد بهتره اون رو به صورت یک پست توی بلاگت یادداشت کنی تا هم مشکل خودت حل بشه و هم شاید مشکل خیلی های دیگه

6 دیدگاه دربارهٔ «تبدیل سایر انجمن ها به VB بدون مشکل encoding»

ای خدااااااااااااااااااا!!!!!!!!

یه سر سوزن از این پشتکار رو به ما بدی دیگه حله!

OK؟ :mrgreen:

من فكر كردم اين كار رو قبلا انجام دادي ، آخه تو انتقال به يه سيستم ديگه همين مشكل كاراكترهاي فارسي سخت ترين قسمت كاره ، ولي phpbb يادمه با اين كار ها هم درست نشد .

حالا چرا انجمن هنوز تبديل نشده ؟

واي ايول به اين پشت كار اگه نيم مثقالش مال من بود الان خيلي وقته همه چيز حل شده بود …يكي هم دستت درد نكنه و خسته نباشي 🙂

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.