تسجيل الدخول

مشاهدة النسخة كاملة : شرح طريقة تحويل الترميز الي utf-8



said
11-01-2013, بتوقيت غرينيتش 10:02 PM
السلام عليكم ورحمة الله وبركاته

العديد طلب طريقة التحويل الي utf-8 والاخ ميلاد كان قد شرح طريقةها من قبل عند طرحة لهاك product تحويل الترميز وهو الافضل من وجهة نظري ان لم تكن قادر علي تحويل الترميز يدويا ان تستخدم هذا الهاك product المميز

واليكم شرح طريقة الغالي ميلاد صاحب الهاك product ومدير الملتقي السوري فالشكر موصول الية
vCharset Converter (http://www.vcharset.com/)




اقتباس
المتطلبات:

نسخة منتدى فيبويلتن في بي vBulletin 3.6.4 أو أحدث.
iconv PHP extension يجب أن يكون منصّباً على سيرفر SERVERك أو أن تكون نسخة الـ PHP 5 أو أعلى، (إذا لم تعرف ما هذا فهو امتداد من امتدادات الـ php المتضمنة للـ GD والـ imap والـ openssl إلخ)


الترميزات المدعومة
انظر هنا: http://www.gnu.org/software/libiconv/#introduction وهي بالطبع تتضمن الترميز العربي windows-1256

التنصيب setup:حمّل الملفات الموجودة في مجلد upload إلى أماكنها المناسبة على سيرفر SERVERك.
استورد المنتج plugin product-charset_converter.xml من لوحة التحكم ولا تنسى أن تختار (نعم) لترقيته إذا كنت قد نصبته من الأول.
حدّث صفحة لوحة التحكم ليظهر ضمن القوائم في لوحة التحكم باسم vCharset Converter

طريقة الاستعمال:اذهب إلى vCharset Converter->Settings وعيّن الترميز المصدر Source Charset Encoding والترميز الهدف Destination Charset Encoding واضغط حفظ. (إذا كنت ستحول من windows-1256 إلى utf-8) فهذا الإعداد جاهز.
اذهب إلى فيبويلتن في بي vBulletin Options -> Censorship Options -> Blank Character Stripper فرّغ القيم هنا واحفظ.
أغلق منتداك.
خذ نسخة احتياطية عن قاعدة البيانات.
أضف لغة جديدة وادعُها مثلاً English وعيّن ترميزها بنفس الترميز الهدف الذي سنحول إليه وهو هنا utf-8
عيّن اللغة الجديدة كلغة افتراضية لك كعضو profile.php?do=editoptions، لكي تستطيع التعامل مع لوحة التحكم أثناء عملية التحويل حيث لن تتمكن من فهم شيء من الكلام العربي حتى تمام التحويل.
غيّر ترميز كل اللغات الموجودة قديماً في منتداك إلى الترميز الهدف وهو هنا utf-8
إذهب إلى إدارة الجداول vCharset Converter -> Manage tables.
إذا واجهتك الرسالة التالية:
كود code PHP:

The iconv PHP module is not presented, please contact your system administrator to enable/install it.


فهذا يعني أن iconv غير مفعّل لديك وعليك أن تطلب من مدير السيرفر SERVER تفعيله أو تنصيب setupه.
يقوم هذا المنتج plugin بالتعرف على جداول المنتدى forum الافتراضية ويشير إلى حالتها أيضاً، بالطبع سنحوّل الجداول المضافة من قبل الهاك productات المتنوعة الأُخرى إذا كانت تحتاج إلى ذلك.
اسأل في هذا الموضوع عن المنتج pluginات الّتي لديك أو اكتب معلوماتها هنا إذا كنت تعرفها.
حرّر الجدول userfield وأضف إليه أي قيم للحقول المخصصة الموجودة في موقعك إليه (هناك أربع حقول موجودة بشكل افتراضي وهي field1, field2, field3 and field4 ويمكنك إضافة المزيد، تحقّق منها في User Profile Fields -> User Profile Field Manager)
اذهب إلى vCharset Converter -> vCharset Converter
سوف تشاهد قائمة منسدلة، اختر منها الجدول الذي تريد أن تحوّله وحدّد عدد السجلات الّتي سيتم تحويلها في الدورة الواحدة (1000 بشكل افتراضي) واضغط على submit إرسال.
أعد الكرة مع كل جدول في القائمة المنسدلة.
عندما ينتهي تحويل جدول ما لن يظهر مرة ثانية في القائمة المنسدلة.
اذهب إلى الإصلاحات -> تحديث update العدادت Maintenance -> Update Counters وقم بإعادة بناء كاش المشاركات Rebuild Post Cache (لن ترى هذا الخيار إذا لم تكن تستعمل كاش المشاركات) وأيضاً تفريغ كاش التواقيع Empty Signature Cache
اختبر منتداك.
جرّب البحث عن كلمات غير إنجليزية، إذا لم تحصل على النتائج المتوقعة أو لم تحصل على أي نتائج فعندها اقرأ قسم "مشاكل البحث".
افتح منتداك.
عند انتهائك أخبرني عن انطباعك وأفكارك والمشاكل التّي واجهتك.

ملاحظات حول إدارة الجداول:
تظهر الجداول في صفحة الإدارة بعد حالات وهي:
1- الجدول جاهز للتحويل.
2- الجدول محوّل. وهنا لا يمكنك القيام بأي عمل للجدول.
3- الجدول لا يحتاج إلى أية عملية وهنا أيضاً لا يوجد خيارات.
4- الجدول غير معروف أي أنه ليس من جداول فيبويلتن في بي vBulletin الافتراضية. وهنا يمكنك جعله على أنه لا يحتاج إلى تعديل. أو إضافته إلى الجداول الّتي بحاجة إلى تحويل وهنا نكتب العمود المسؤول عن الـ primaryid في مكانه المخصص، ونكتب أسماء أعمدة الجدول الّتي بحاجة إلى تحويل عادةً تكون من النوع text أو varchar.
مع الوقت سوف يصبح لدينا قائمة بجداول الهاك productات وكيفية التعامل مع كل جدول، وهذا يتطلب تعاون منّا جميعاً لذلك اسأل عن جداول هاك productاتك. وإذا كنت تعرف اكتبه هنا .. الهاك product يتطلب تعاون جماعي وإلا لن يتمكن أحد من الاستفادة منه.

مشاكل البحث
ما هي المشكلة؟
بعد التحويل ربّما لا تحصل على النتائج المتوقعة بالبحث، لقد واجهت هذه المشكلة بعد التحويل إلى utf-8

ما هي ظروفك وقتها؟
Mysql 4.1.x وبحث معتمد على Full-Text وكنت قد حوّلت إلى utf-8

ما هو السبب؟
هناك بعض القيود للبحث Full-Text المعتمد على MySQL وهو يقول: "all columns in a FULLTEXT index must use the same character set and collation." يجب أن تستخدم كل الأعمدة في فهرس FULLTEXT نفس مجموعة الترميز والـ collation

الحل؟
إذا كنت تستخدم البحث Full-Text مع MySQL 4.1 أو أعلى وحوّلت إلى utf-8 عندها نفذ الاستعلامات التالية (بعد تحويل جدولي post & thraed)
كود code:
ALTER TABLE post MODIFY pagetext mediumtext COLLATE utf8_unicode_ci
ALTER TABLE post MODIFY title VARCHAR(250) COLLATE utf8_unicode_ci
ALTER TABLE thread MODIFY title VARCHAR(250) COLLATE utf8_unicode_ci

لا تنسَ أن تضيف لاحقة الجدول لديك إذا كانت لديك لاحقة (انظر config.php) ونفذ الاستعلامات من phpmyadmin مثلاً.

- إذا كنت تستعمل محرك البحث Search Engine المبيّت في فيبويلتن في بي vBulletin (مع اي نسخة من MySQL) فضع بعين الاعتبار أن تعيد بناء فهرس البحث لديك. Maintenance -> Update Counters -> Rebuild Search Index
إصلاح -> تحديث update العدادات -> إعادة بناء فهرس البحث.
يُمكنك أن تقرأ هذا الموضوع أيضاً http://www.vbulletin.com/forum/showthread.php?t=191315

مشاكل البريد الإلكتروني
بعد التحويل، اشتكى الأعضاء من أنهم لا يتمكنون من قراءة رسائل التنبيه بالبريد الإلكتروني، تُرسل الإيميلات بترميز utf-8 والمشكلة هنا بشركات الإيميل حيث تكون صفحتهم بترميز iso مثلاً وترميز الرسالة utf-8 فلا تظهر الرسالة كما يجب.



لسوء الحظ لا يعرف كل المستخدمين كيف يغيرون ترميز الصفحات، ولذلك من الأفضل أن تعلمهم، وهذا الحل الوحيد حالياً.
لقد تأكدت من وجود المشكلة في الـ hotmail وأظن أنها غير موجودة في windows live mail
لم أتأكد من وجودها في yahoo mail
المشكلة غير موجودة في gmail تأكدت بنفسي أيضاً.
هذه المشكلة ستزول مع الوقت عند قيام شركات البريد الإلكتروني بالدعم الكامل لـ utf-8 فالمسألة مسألة وقت لا أكثر.

مثال عن تعليم الأعضاء كيفية تغيير الترميز في البريد الإلكتروني http://www.syrianmeds.net/forum/showthread.php?t=3616

المشاكل المعروفة

بعد التحويل تختفي ألقاب الأعضاء users titles


منتديات قامت بالتحويل باستخدام هذه السكربت: (اطلب مني إضافة منتداك)

http://www.syrianmeds.net/forum/ من windows-1256 إلى utf-8


أخيراً
هل يستحق الأمر أن أخوض الانتقال إلى utf-8؟
نعم يستحق .. العالم كله يتجه نحو utf-8 وسيأتي يوم سيتوقف فيه استعمال باقي الترميزات وستصبح دقة قديمة ... أنا برأيي أن نواكب الموجة التقنية أوّل بأوّل ... فضلاً عن مزايا الأجاكس الّتي ستستعملها وأنت مرتاح .. يُقال أنّ محركات البحث وخاصةً google يحب utf-8 ويقال أن ترميز utf-8 أفضل لـ google adsense ولا أعرف مدى مصداقية هذه المعلومات حول جووجل.

أيضاً يمكنك أن تطلب مني تحويل قاعدة بيانات منتداك مقابل سعر محدّد، يعتمد على حجم قاعدة بياناتك.

بالتوفيق للجميع
ميلاد





الملفات المرفقة
http://www.traidnt.net/vb/images/attach/zip.gif vCC2.0.0.b.3.zip (http://www.traidnt.net/vb/attachments/394975d1248515009-vcc2.0.0.b.3.zip) (51.6 كيلوبايت, عدد مرات المشاهدة 1039 مرة)


https://fbcdn-sphotos-d-a.akamaihd.net/hphotos-ak-ash4/482113_236967293114455_1193518507_n.png (http://www.dzbatna.com)
©المشاركات المنشورة تعبر عن وجهة نظر صاحبها فقط، ولا تُعبّر بأي شكل من الأشكال عن وجهة نظر إدارة المنتدى (http://www.dzbatna.com)©

استعمل مربع البحث في الاسفل لمزيد من المواضيع


سريع للبحث عن مواضيع في المنتدى