اخي الكريم ( العندليب )
قمت بتحويل المنتديات ( بعد اخذ نسخة احتياطية ) إلى الترميز cp1256 وتم اظهار علامات استفهام
بعد ذلك قمت بتغييرها الى utf-8 وهو نفس الحال
ارجو الحل يا اخي
وشكرا على الاسكريبت
اخي الكريم ( العندليب )
قمت بتحويل المنتديات ( بعد اخذ نسخة احتياطية ) إلى الترميز cp1256 وتم اظهار علامات استفهام
بعد ذلك قمت بتغييرها الى utf-8 وهو نفس الحال
ارجو الحل يا اخي
وشكرا على الاسكريبت
__________________
Ahmed Hassan
Web.Serve
ما شاء الله .. تبارك الله ..
مبدع ..
__________________
استخدم خاصية تنبيه المشرفين للضرورة وعند ملاحظة موضوع يخالف قوانين منتديات سوالف وسيتم مراجعة الموضوع او المشاركة المبلغ عنها على الفور
أخي العزيز:- العندليب
بارك الله فيك على هذا الموضوع القيم والمفيد للجميع ...
أخي العزيز عندي قاعدة بيانات لموقعي وهو عبارة عن دليل .... وكنت سابقاً ازرع القاعدة بدون مشاكل ولكن قبل فترة طلبت من المستضيف ترقية ...
1-MySQL Server
2-phpMyAdmin
وبعد الترقية وعند زرع القاعدة تتحول صفحة الموقع إلى علامات إستفهام ؟؟؟؟؟؟
حاولت زرعها بكذا طريقة ( UTF-8 )(windows-1256)(latin)
ولم تفلح كل المحاولات وبعد الموضوع هذا اتوقع بأن أجد الحل لديكم بارك الله فيك ... والسؤال كيف أعرف ترميز القاعدة عندي ؟؟؟
للمعلومية أخي الكريم حاولت في السكربت الذي في الموضوع هاذا وفعلاً حول القاعدة إلى cp1256
Database: 3ndleeeeeb (converted to cp1256)
Logon
ولم يتغير شئ ما زال الموقع علامات إستفهام وحولتها مرة أخرى إلى UTF8
Database: 3ndleeeeeb (converted to UTF8 )
Logon
ونفس المشكلة ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
__________________
سبحان الله والحمد لله والله واكبر
أخواني الكرام
أغلب المشاكل التي تأتي قبل القيام في التحويل هو محتوى القاعده
فأحيانا يكون محتوى القاعده مختلف تماما عن الترميز المكتوب على القاعده والسبب نظام الاتصال بقاعدة البيانات.
فالسكربت الذي قمت بوضعه في هذا الموضوع يعتمد على الترميز المكتوب على القاعده
فإذا كان محتوى القاعده يونيكوود و الترميز المكتوب على القاعده latin1 فسوف يتم التحويل من latin1 إلى الترميز الذي تحدده عند دخولك الى السكربت.
ولهذا السبب تظهر علامات الاستفهام
لذلك طبقوا الخطوات التي ذكرتها للأخ مدمن نت في مشاركه (26) حتى يتم إصلاح محتوى القاعده
http://www.swalif.net/softs/swalif-1435540-26.html
وفقكم الله لكل خير
__________________
al3ndaleeb[@]uk2.net
عزيزي قمت بتطبيق السكربت في البداية وتم تحويل القاعدة إلى علامات إستفهام ...
ثم قمت بتطبيق شرحك في الرد 26 ولكن لم ينفع أيضاً .. وتحولت القاعدة إلى علامات إستفهام..
مع العلم أنني استخدمت latin1_swidish_ci في ترميز القاعدة ..
الرجاء إفادتنا بالطريقة الصحيحة للتحويل..
ملاحظة: يوجد خطأ في الأمر في ردك 26 وهو أمر تحويل الترميز .. حيث أن الكتابة الصحيحة هي
وأنت قمت بكتابتها هكذاكود:--default-character-set=latin1
كود:--defalut-character-set=latin1
__________________
لسنا أول من عبر المحيط
جزاك الله خيراً على تصحيح الخطأ يا أخ BIOs وعذراً على الخطأ الغير مقصود مني
فعلا هناك خطأ في كتابتي لصيغة أمر mysqldump وأمر mysql في مشاركه رقم 26 والصحيح كتابتهم حسب الشكل التالي:
كود:mysqldump --default-character-set=latin1 --compatible=mysql40 --user=USER --password=PASSWORD DATABASE > db.sqlكود:mysql --default-character-set=latin1 --user=USER --password=PASSWORD NEWDATABASE < db.sql
طيب يا أخ BIOs
عندي لك أسئله حتى أصل معك للخلل
هل بعد قيامك لسحب قاعدة البيانات بأمر mysqldump الذي ذكرته في المشاركه رقم 26 ظهرت الحقول النصيه في ملف القاعده بحروف عربيه أم علامات إستفهام ؟
طبعا هذا يتطلب منك فتح ملف القاعده بأحد برامج النصوص مثل ultraedit أو ultrastudio
أو سحب جدولاً واحداً فقط بدلاً من القاعده بأكملها بأمر mysqldump حسب الصيغه التاليه:
طبعا غير اللازم في صيغة الأمر واختر جدولاً صغيراً في حجمه يحتوي على حروف عربيه في حقولهكود:mysqldump --default-character-set=latin1 --compatible=mysql40 --user=USER --password=PASSWORD DATABASE TABLE > table.sql
بالانتظار
__________________
al3ndaleeb[@]uk2.net
صحيح عزيزي ..المشاركة الأصلية كتبت بواسطة العندليب
عندما قمت بأخذ نسخة مثلا من جدول الأعضاء .. وفتحه عن طريق المفكرة .. ضهرت الأسماء باللغة العربية بدون مشاكل ..
أعتقد الآن الحل سهل ..
بإنتظارك
__________________
لسنا أول من عبر المحيط
قمت بعمل تجربة بسيطة .. ونجحت
عندما سحبت النسخة من جدول الأعضاء .. قمت بزراعته في قاعدة فارغة ولكن قمت بتحويل القاعدة في البداية إلى cp1256_general_ci ومن ثم زرعتها عن طريق الأمر
ونجحت بدون إستخدام السكربت أيضا .. :1power:كود:mysql --default-character-set=cp1256 --user=USERNAME --password=PASSWORD DATABASE < user.sql
وأستضيع الآن مشاهدة أسماء الأعضاء في phpMyAdmin باللغة العربية الصحية :deal:
__________________
لسنا أول من عبر المحيط
المشاركة الأصلية كتبت بواسطة BIOs
الحمد لله.. قمت بالتجربة على القاعدة كاملة ونجحت 100% الطريقة :app:
وبدون إستخدام السكربت المرفق ..
فقط أخذت باك أب للقاعدة مع تغيير الترميز أثناء الباك أب إلى latin1 .. وقمت بزرع القاعدة من جديد ولكن مع تغيير ترميز القاعدة وهي فارغة إلى cp1256_general_ci ومن ثم إستخدام أمر زراعة القاعدة مع تغيير الترميز إلى cp1256
هذه الخطوات بالمختصر .. :deal:
للعلم .. حجم القاعدة 1,2 جيجا بايت .. لمنتدى يحتوي على أكثر من 20 ألف مشترك .. وما يزيد عن مليون مشاركة ..
ولكن فااضل الآن مشكلة وحدة .. وهي إنه عند إضافة مشاركة جديدة .. تظهر مشفرة ..
مع العلم عدلت في ملف الكونفيج الترميز للقاعدة وجعلته cp1256
ولكن واجهت مشكلة كبيرة وهي إنه لما ضفت الترميز في ملف الكونفيج وكتبت رد .. تحول المنتدى إلى علامات إستفهام .. مع العلم أنه لازالت البيانات في القاعدة باللغة العربية ..كود:$config['Mysqli']['charset'] = 'cp1256';
بإنتظار حل هذه المشكلة يا عندليب
__________________
لسنا أول من عبر المحيط
الحمدلله رب العالمين
أخي BIOs مبروك تحويل القاعده ولكن إحذر
ليس دائماً يكون الحل الذي توصلت له في ردك الأخير صحيحاً
لأنه عند سحبك لقاعدة بياناتك بأمر mysqldump الذي ذكرنا صيغته فإن بعض الحقول ذات النوع binary تكون بالترميز الذي سحبتها فيه ولكن بصيغة النظام الرقمي السدس عشري
على سبيل المثال
لذلك عندما يقوم أمر mysql بإدخالها إلى قاعدة بيانات جديده ذات ترميز مختلف عن ترميز أمر mysqldump فسوف يقوم بتحويل هذا الرقم السدس عشري إلى نص حسب جدول ترميز القاعده الجديده.كود:0xda0xe40xcf0xe1
وهذا النص المحول ربما يكون عباره عن حروف غير معروفه للترميز الجديد
لذلك سوف تكون النصوص المدخله هي علامة الاستفهام ( ؟؟؟؟ ) وبالشكل هذا ستفقد بعض البايتات داخل الحقول ذات النوع binary .
ولهذا السبب طلبت من الأخ مدمن نت سحبها بترميز latin1 وارجاعها الى قاعده بترميز latin1 أيضاً وبعدها يتم إستخدام السكربت للتحويل.
ولك تجربة ماذكرته لك في هذا الرد
موفق
__________________
al3ndaleeb[@]uk2.net
عزيزي العندليب .. قمت بتعديل ردي وذلك لأنني واجهت مشكلة جديدة ..
يرجى قراءته
__________________
لسنا أول من عبر المحيط
أدخل على إعدادات اللغه وأذكر لي ماهو الترميز المستخدم للصفحهالمشاركة الأصلية كتبت بواسطة BIOs
لأن الأرقام المشفره المذكوره في الجدول الأخير الذي ذكرته عباره عن حروف يونيكود مكتوبه بصيغة html entity .
أما مسألة الترميز المكتوب في ملف الكونفق فأنا أريد أن أعرف لماذا كتبوا إسم المتغير
mysqli ولم يكتبوه mysql
فأريد أن أتحقق من النسخ الأخيره هل هي تستخدم أوامر mysqli دون أوامر mysql
إنتظرني للتحقق منها.
__________________
al3ndaleeb[@]uk2.net
هذا هو ترميز الصفحة
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
__________________
لسنا أول من عبر المحيط
هذه جعلت محتويات صفحتك مثل اليونيكوود
charset=utf-8
المفروض تكون
charset=windows-1256
عدل ترميز اللغه من خيارات اللغه في لوحة تحكم المنتدى
وتعديل الكونفق صحيح
موفق
__________________
al3ndaleeb[@]uk2.net
جربت نفس جدول الأعضاء الذي سحبته .. رجعته للقاعدة بترميز latin1 ومن ثم استخدمت سكربت التحويل .. وأيضاً ظهرت أسماء الأعضاء علامات إستفهام ..ولهذا السبب طلبت من الأخ مدمن نت سحبها بترميز latin1 وارجاعها الى قاعده بترميز latin1 أيضاً وبعدها يتم إستخدام السكربت للتحويل.
__________________
لسنا أول من عبر المحيط