السلام عليكم
مشكور اخي العندليب وبارك الله فيك
قد وصلت لنصف الموضوع وتذكرت أيام الـ 1-0 والسلاسل الأخرى الـ8 والـ 16 وغيرها من وجع القلب
بصراحة كنت اكره هذه المادة :shy:
مع تحياتي
السلام عليكم
مشكور اخي العندليب وبارك الله فيك
قد وصلت لنصف الموضوع وتذكرت أيام الـ 1-0 والسلاسل الأخرى الـ8 والـ 16 وغيرها من وجع القلب
بصراحة كنت اكره هذه المادة :shy:
مع تحياتي
__________________
_Mudares_
°‿°
وعليكم السلام
اهلا بالزملاء Hasan و N-DES وشكرا على مروركم
بالنسبه لتساؤلاتكم
دعني أعدل صيغة سؤالك وأقول أيهما أفضل من ناحية التطبيقات على الويب العربي؟أيهما أفضل من ناحية التطبيقات على الويب؟
اذا كان موقعك عربي فأكيد زوارك حيكونوا عرب وأكيد حيكون الترميز windows-1256 العربي موجود لدى زوارك في أجهزتهم إلا إذا كان الويندوز لديهم لا يدعم الترميز العربي فحينها سيفيد نظام اليونيكوود بلا شك ولكن عيب ترميز اليونيكود أنه يضاعف حجم البيانات المكتوب به لان الحرف في اليونيكوود يساوي 2 بايت.
لا ليس صحيح.هل صحيح أن الاعتماد utf-8 سيؤدي لمضاعفة حجم القاعدة إلى ثلاث مرات؟
الـ utf8 أحد تطويرات ترميز اليونيكوود والحجم فيه نفس الحجم في اليونيكوود والحرف يساوي 2 بايت.
لم أفهم سؤالك جيداً ولكني عرفت أنك تقصد بأن تكون قاعدة البيانات بترميز windows-1256 والعرض يكون بالـ utf8 .هل يمكن الاعتماد على الترميز windows-1256 في قبال الترميز utf-8 على الرغم من مشكلة حجم القاعدة؟
فهذه ستجعلك تفكر في طريقة برمجيه للتحويل من الـ windowd-1256 الى utf8
ليست ذات أهميه كبيره في موضوعنا ولكن كان الهدف التوضيح الأساسي الذي أتى من أجله الترميز والان الحاسبه تغنيك في عملية التحويلات فلست بحاجه الى التطبيقات الرياضيه التي كانت تدرس في المدارس والجامعاتقد وصلت لنصف الموضوع وتذكرت أيام الـ 1-0 والسلاسل الأخرى الـ8 والـ 16 وغيرها من وجع القلب
موفقين
رائع استاذ العندليب ، لله يجعله في ميزان حسناتك . موضوع مفيد للكبير والصغير المبتدئ والخبير
عندي كم إضافة بسيطة جداً لاصحاب السيرفرات اذا ما كان فية مانع ..
طريقة إظهار الترميز في mysql server للخادم والقواعد والعميل والجداول والاتصال
عن طريق Shell تقوم بكتابة الامر
بعد ذالك قم بكتابة الامركود PHP:
mysql
ستظهر لك النتائج ، مثل التاليكود PHP:
status
كود PHP:
--------------
Connection id: 106432
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 4.1.19-standard-log
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: latin1
Db characterset: latin1
Client characterset: latin1
Conn. characterset: latin1
UNIX socket: /var/lib/mysql/mysql.sock
Uptime: 54 hours 25 min 6 sec
--------------
تلاحظ ظهر لك نفس الي ذكرة الاستاذ العندليب
Server characterset: latin1
Db characterset: latin1
Client characterset: latin1
Conn. characterset: latin1
الترميز المستخدم latin1
تستطيع تغيير الترميز في خادم mysql عن طريق إما تنفيذ آوامر في الشل او عن طريق إضافة اسطر خاصة في ملف اعدادات mysql my.cnf
عن طريق التالي
نقوم بتحرير ملف my.cnf
نقوم بإضافة السطر التالي في منقطة [mysqld]كود PHP:
nano -w /etc/my.cnf
وايضاً نقوم بإضافة السطر التاليكود PHP:
default-character-set = cp1256
ومن ثم حفظ و إعادة تشغيل خادم الماي اسكيو الكود PHP:
[client]
default-character-set = cp1256
اتمنى اذا فية اي خطأ الرجاء التصحيحكود PHP:
mysqladmin reload
/etc/init.d/mysql restart
وشاكر للمبدع دائماً الاستاذ العندليب
__________________
لتواصل
بريد + ماسنجر
admin( @ )tec4serv.com
3rbhost
سابقاً
رائع جدا وفقك الله اخي العزيز العندليب
انا كنت متردد من فتره في ترقية ال mysql من اجل الترميز ومشاكل الترميز التي قرات عن مشاكلها كثيرا في الانترنت
اعتقد اني الان لم اعد متخوفا من الترقيه اليس كذا لك اخي العندليب
__________________
الشبكة المكية العربية
E-mail : admin@amn.com.sa
MSN : msn@amn.com.sa
00966555892239
0096625570599
ممتاز أخي العندليب
جزاكم الله خير الجزاء
عماد
__________________
الحمد لله على كل حال
أخي العندليب
تسلم على الموضوع المهم ... وحقيقة معلوماتي في هذا االأمر صفر
ولكن تحصل معي مشكلة في موقعي ... دائماً يتوقف وخاصة عندما يكون عليه ضغط زوار
المستضيف شركة اجنبية امريكية (( www.websitesource.com ))
وعند توقف الموقع اضطر لعمل ريستارت لسيرفر ويعمل
وللمعلومية يوجد لدي اكثر من 7مواقع بعضها بقاعدة بيانات وبعضها مجرد صفحات هتمل وجميعها تتوقف الموقع الرئيسي عبارة عن دليل وهو سكربت وصلة والأخر سكربت مملكة العرب... عند محادثي للمستضيف عبر الشاتنق يذكر بأن السبب في ((MYSQL ))
حاولت اخبره بأن بعض المواقع بدون قاعدة بيانات ولكن يدعون بأن السبب من كود يسبب مشكلة لـ vps وهو نوع الإستضافة لديهم
ممكن تساعدني بارك الله فيك في حل اللغز ... وهذا موقع اجنبي يمكن يفيدك
http://www.webhostingtalk.com/showth...=websitesource
__________________
سبحان الله والحمد لله والله واكبر
السلام عليكم
واهلا بالزملاء ونورتم الموضوع
الزميل 3rbhost أشكرك على الإضافه الرائعه بخصوص أمر status ولكن لدي تنبيه حول ماذكرته بخصوص الحل التالي:
أريد أن أنبهك لمسأله مهمه وهو بعد تعديلك السابق سوف تظهر النتائج من القواعد الموجوده مسبقاً بعلامات استفهام ؟؟؟؟؟؟؟؟؟ خاصة للقواعد العربيه المكتوبه بترميز latin1 .تستطيع تغيير الترميز في خادم mysql عن طريق إما تنفيذ آوامر في الشل او عن طريق إضافة اسطر خاصة في ملف اعدادات mysql my.cnf
عن طريق التالي
نقوم بتحرير ملف my.cnf
كود PHP:
nano -w /etc/my.cnf
نقوم بإضافة السطر التالي في منقطة [mysqld]
كود PHP:
default-character-set = cp1256
وايضاً نقوم بإضافة السطر التالي
كود PHP:
[client]
default-character-set = cp1256
ومن ثم حفظ و إعادة تشغيل خادم الماي اسكيو ال
كود PHP:
mysqladmin reload
/etc/init.d/mysql restart
لذلك يجب عليك تحويل كل قاعده لديك الى ترميز cp1256 إذا كانت كل هذه القواعد بترميز يختلف عن ترميز utf8 وترميز ucs2 وتتم بالأوامر التاليه:
أما لو أردت أن تكون قواعد بياناتك باليونيكوود utf8 فيجب عليك تعديل خطواتك التي ذكرتها في تحرير ملف my.cnf وتضع utf8 بدلاً من latin1 وتقم بإعادة تشغيل الخادم وتنفذ الاوامر التاليه على كل قواعدك:كود PHP:
mysqldump --compatible=mysql40 --user=username --password=password --default_character-set=cp1256 --skip-set-charset dbname > dump.sql
mysql --user=username --password=password --execute="DROP DATABASE dbname; CREATE DATABASE dbname CHARACTER SET cp1256;"
mysql --user=username --password=password --default-character-set=cp1256 dbname < dump.sql
دقق في أسطر الأوامر ستجد أنني قمت بطرح القاعده بعد أن أخذت نسخه احتياطيه منها.كود PHP:
mysqldump --compatible=mysql40 --user=username --password=password --default_character-set=latin1 --skip-set-charset dbname > dump.sql
chgrep latin1 utf8 dump.sql
mysql --user=username --password=password --execute="DROP DATABASE dbname; CREATE DATABASE dbname CHARACTER SET utf8 COLLATE utf8_general_ci;"
mysql --user=username --password=password --default-character-set=utf8 dbname < dump.sql
الاستاذ عماد الدين
سعدت بمرورك واهلا بك
الزميل greeeb
المعذره ردك خارج عن الموضوع.
أعرض مشكلتك في موضوع مستقل وإن شاء الله يساعدونك الشباب.
موفقين جميعاً
يعطيك العافية استاذ العندليب على التنبية حيث يجب علينا اخذه بعين الاعتبار
تحياتي لك
__________________
لتواصل
بريد + ماسنجر
admin( @ )tec4serv.com
3rbhost
سابقاً
العندليب،،
أولاً، أشكرك على هذا الطرح الرائع و المتميز
ثانياً، اسمح لي أن أطرح عليك مشكلتي
و كلي أمل أن تطرح علي حلاً أو تجيبني جواب شافي
بالنسبة لي.. قمت قبل الإطلاع على أي شيء بموضوع التراميز
بالذهاب إلى لوحة phpMyAdmin و من ثم قمت بتحويل ترميز إحدى القواعد
إلى cp1256_general_ci ثم ترميز أحد الجداول في هذه القاعدة إلى نفس الترميز
ثم قمت بتعديل ترميز ثلاثة حقول من الجدول إلى نفس الترميز و هو cp1256_general_ci
بعد ذلك أصبحت جميع البيانات في هذه الحقول الثلاثة عبارة عن علامات استفهام
فقمت بعد ذلك بإرجاع التراميز إلى ما كانت عليه للحقول و الجدول و القاعدة
و الترميز كان latin1_swedish_ci لكن بدون أن تعود البيانات إلى ما كانت عليه
سؤالي هو.. هل خسرت بياناتي في قاعدة البيانات؟ و هل هناك طريقة لإسترجاعها؟
و سؤالي الثاني.. ما الطريقة لإظهار البيانات العربية في phpMyAdmin؟
حيث أن محاولة تغيير ترميز القاعدة و الجدول و الحقول كانت بناء على رغبتي بإظهار البيانات العربية بالبرنامج
تقبل تحياتي
__________________
موقع النهر
وعليكم السلام ورحمة الله وبركاتهالمشاركة الأصلية كتبت بواسطة alnhr.com
اهلا بالزميل الكريم
يبدوا أنك كنت مستعجلاً ياعزيزي ولم تكمل الموضوع لنهايته حيث ذكرت بأنني سوف أذكر موضوعا آخر لتحويل ترميز قواعد البيانات.
اولا أحب أن اوضح لك بأن cp1256_general_ci يعتبر قانون للترميز cp1256 فهناك فرق بينا الإثنين.
ثانياً عملية تغيير ترميز القاعده والجدول والحقول عن طريق امر ALTER مباشرة لا يصلح ويفسد عليك البيانات.
أنت بدأت عملية التحويل بطريقه خاطئه وكان عليك السؤال قبل البدء لأنك بالطريقه هذه فقدت بياناتك المخزنه ويجب عليك العوود للنسخه الاحتياطيه.
لكي نحول جدول الى ترميز اخر يجب التركيز على طبقة الحقول وترك مسألة الطبقات الأخرى على جنب.
كما تعلم ياعزيزي الحقول لها أنواع
فأحيانا يأتي حقل نوعه Int وأحيانا date وأحيانا char ..... الخ
الذي يجب علينا التركيز فيه هو الحقول ذات النوع النصي وهي كالتالي:
char
varchar
text
mediumtext
longtext
enum
set
فأول خطوه يجب عملها قبل التحويل هو عمل نسخه احتياطيه ويفضل أن تأخذ الباك أب بصيغة يونيكوود utf8 حتى لا تفقد شيئاً من البيانات إذا كانت لديك حقول متنوعه في الترميز وهذه الخطوه تفيدك في حالة وقعت في أي خطأ لا سمح الله.
ثاني خطوه للتحويل هو تغيير نوع الحقل الى binary حتى تصبح البيانات المخزنه في الحقل ذات صيغة بايت وليست صيغة نص حسب المثال التالي:
في الأمر السابق حولنا نوع الحقل c1 في جدول t الى binary حسب طول الحقل.كود PHP:
ALTER TABLE `t` CHANGE `c1` `c1` BINARY( 10 );
بعدها نفذ الامر حسب المثال التالي:
في الأمر السابق أرجعنا نوع الحقل c1 في جدول t الى نوعه الأصلي مع تغيير نظام الترميز الى الترميز العربي cp1256 .كود PHP:
ALTER TABLE `t` MODIFY `c1` char(10) CHARACTER SET cp1256;
طبعا الطريقه متعبه إذا كنت تريد تحويل ترميز القاعده بأكملها فالطريقه السابقه كانت فقط على مستوى الحقل وان شاء الله في موضوعنا القادم سنتطرق لهذه المسائل.
تحياتي لك
بارك الله فيك وفي علمك اخوي العندليب
تحية طيبة لك استاذي.
السلام عليكم
جزاك الله خير اخوي العندليب .. صار لي 3 ايام افهم الشركه theplanet بخصوص الشي هذا ومحد فهم علي .. وبما انك طرحت الموضوع تقدر تفيدني ان شاء الله ..
أول شي دخلت على الشل وكتبت امر status وطلعت لي البيانات التاليه :
خلصنا من الخطوه هذي .كود PHP:
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 4.1.19-standard-log
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: latin1
Db characterset: latin1
Client characterset: latin1
Conn. characterset: latin1
UNIX socket: /var/lib/mysql/mysql.sock
الشي الثاني :
MySQL charset: UTF-8 Unicode (utf8)
MySQL connection collation : utf8_unicode_ci
جداول المنتدى عندي كامله صار الـ Collation فيها هو latin1_swedish_ci
طبعا انا عربي .. ولغتي عربيه .. منتداي عربي وفيه بعض الاقسام الاجنبيه ( لغه انجليزيه ) بس .
اريد كل ترميز السيرفر كامل والـ mysql عربي .
يوم ادخل على phpmyadmin واختار جدول معين .. الكلمات العربيه بالصيغه التاليه :
توجيهاتك بخصوص الشي هذا .. هل احول كل شي لترميز العربي .؟ وهل هو افضل من الترميز الحالي ؟ وكيف طريقة التحويل .؟كود PHP:
ÇáÓÜÜÜÜÇÍÉ ÇáÚÇãÉ æÇáÍæÇÑ
اشكرك اخوي مقدما وبارك الله فيك .
سلام عليكم
مجهود كبير
يالعندليب ياليت تسرع في انزال الموضوع الخاص بقواعد البيانات
حيث اني اريد نقل المنتدى الى موقع اخر وتواجهني مشكله اللغة
مشكور اخوى العندليب على المعلومه
أخي الباهووت
حياك الله وشكراً على مرورك ياعزيزي
الزميل أثير الإمارات
بما أنك أحد المستضيفين أو صاحب لخادم خاص فراجع نقاشي مع الأخ 3rbhost في هذا الموضوع وسؤالك التالي:
إنت وش شايفتوجيهاتك بخصوص الشي هذا .. هل احول كل شي لترميز العربي .؟ وهل هو افضل من الترميز الحالي ؟ وكيف طريقة التحويل .؟
تكلمنا عن الميزه التي سنكسبها من تغيير الترميز الى العربي في مواقعنا العربيه وهي دقة البحث وإصلاح مشاكل كثيره داخل السكربتات اولها ( الباسوورد العربي ) .
الزميل شبكة الجنان
أهلا وسهلا بك.
سببي الأول في طرح موضوع مستقل بالتحويل هو نوعية المستخدم
فهناك مستضيف وهناك عميل
وكل شخص منهم يريد تغيير قاعدتة الى الترميز العربي له طريقه وخطوات مستقله عن الاخر.
أما السبب الثاني هو رغبتي في طرح مواضيع أخرى بناءاً على هذا الموضوع وهو موضوع التحويل.
الزميل الرشمي
أشكرك على المرور وحياك الله.
دمتم بودّ