شوّيت: شبكة كرة قدم اجتماعية




العودة   سوالف سوفت > سوالف برمجة المواقع وتطويرها > الويب والويب 2.0 والـ Semantic Web
التسجيل المدوّنات البحث مشاركات اليوم جعل الأقسام مقروءة

الرد على الموضوع
 
LinkBack أدوات الموضوع
عضو نشيط
#26  

بارك الله فيك وفي علمك اخوي العندليب
تحية طيبة لك استاذي.






الباهوت is offline   قديم 04-06-2006, 01:33 AM
الرد مع إقتباس
عضو نشيط
#27  

السلام عليكم

جزاك الله خير اخوي العندليب .. صار لي 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:
ÇáÓÜÜÜÜÇÍÉ ÇáÚÇãÉ æÇáÍæÇ&Ntilde
توجيهاتك بخصوص الشي هذا .. هل احول كل شي لترميز العربي .؟ وهل هو افضل من الترميز الحالي ؟ وكيف طريقة التحويل .؟

اشكرك اخوي مقدما وبارك الله فيك .






أثير الإمارات is offline   قديم 04-06-2006, 01:46 AM
الرد مع إقتباس
عضو نشيط
#28  

سلام عليكم

مجهود كبير

يالعندليب ياليت تسرع في انزال الموضوع الخاص بقواعد البيانات

حيث اني اريد نقل المنتدى الى موقع اخر وتواجهني مشكله اللغة







شبكة الجنان is offline   قديم 04-06-2006, 02:20 AM
الرد مع إقتباس
عضو نشيط
#29  

مشكور اخوى العندليب على المعلومه






الرشمي is offline   قديم 04-06-2006, 08:43 AM
الرد مع إقتباس
عضو فعال
#30  

أخي الباهووت
حياك الله وشكراً على مرورك ياعزيزي


الزميل أثير الإمارات
بما أنك أحد المستضيفين أو صاحب لخادم خاص فراجع نقاشي مع الأخ 3rbhost في هذا الموضوع وسؤالك التالي:
إقتباس:
توجيهاتك بخصوص الشي هذا .. هل احول كل شي لترميز العربي .؟ وهل هو افضل من الترميز الحالي ؟ وكيف طريقة التحويل .؟
إنت وش شايف
تكلمنا عن الميزه التي سنكسبها من تغيير الترميز الى العربي في مواقعنا العربيه وهي دقة البحث وإصلاح مشاكل كثيره داخل السكربتات اولها ( الباسوورد العربي ) .


الزميل شبكة الجنان
أهلا وسهلا بك.
سببي الأول في طرح موضوع مستقل بالتحويل هو نوعية المستخدم
فهناك مستضيف وهناك عميل
وكل شخص منهم يريد تغيير قاعدتة الى الترميز العربي له طريقه وخطوات مستقله عن الاخر.
أما السبب الثاني هو رغبتي في طرح مواضيع أخرى بناءاً على هذا الموضوع وهو موضوع التحويل.


الزميل الرشمي
أشكرك على المرور وحياك الله.


دمتم بودّ






العندليب is offline   قديم 04-06-2006, 09:01 PM
الرد مع إقتباس
مشرف قسم التجارة في الاستضافة / خبير سيرفرات لينكس
#31  

أخي العندليب.

جزاك الله خير على هذة التحفة المميزة وصدقا انا نفسي اواجه الكثير من المشاكل وقت التفكير بالأنتقال الى اصدارات فوق 4.1

بصراحةاود ان اطرح طلبا صغيرا .
الموضوع هنا يتحدث مع المبيرمجين ونعم انا منهم .
ولكن صدقني ضعت .

وكما قيل في الإمام الذي يأم المسلمين عن كراهة إطالة الصلاة.
نقول هنا في نفس المقام عن كراهة اطالة الحبل على المستخدم العادي الذي لن يستطيع الوصول الى السيرفر
لكي يعدل ملفات الأباتشي ولن يحلم ان يقوم بعمل ريستارت للقاعدة.

الطلب الذي اتوقع ممكن منك أخي العندليب .
إعتبرني مستخدم لا يعرف سوى ينصب منتدى
وخاطبني على هذا الأساس .
اريد ان انصب منتدى عربي .
او اريد ان ابرمج سكريبت سجل زوار
والمستضيف عندي كثر الله خيرة Mysql5

لا اريد الخوض بمعمة الترميز وفهم الموضوع (اقصد المستخدم العادي)

اريد خطوات سريعة
1
2
3

ويصبح الموقع يدعم العربية من كل النواحي واقدر اعمل ابديت وباكب اب و phpmyadmin بالعربي.

يعني اوصل المستخدم البسيط الى ( اللورباك ) الزبدة . بس دنماركية لعنها الله .
اصبح خلينا على الزبدة حاف :>

وبذلك يفرح الكل ومنهم انا

بان استخدم اخر اصدار مع ترميز عربي

بالنسبة لل UTF8 فبصراحة عندي لك سؤال.

انا بصدد اطلاق موقع لي ومحتار الترميز الذي يجب ان استخدمة.
ما نصيحتك ؟ وهل ال UTF8 هو الأمثل

وهل يغنيني ال UTF8 عن التعديلات التي يجب القيام بهرا كرامة للغة العربية المدللة .

جزاك الله خيرا اخوي .
موضوع ثقة بعدد حروفة وكل حرف كيلو ذهب






beshoo is offline   قديم 05-06-2006, 12:08 AM
الرد مع إقتباس
عضو نشيط جدا
#32  

اخي العندليب لقد قمت ببناء قاعدة بالترميز
cp1256_general_ci
لكن عندما اقوم بستدعاء البيانات تظهر بشكل
؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
عجزت وماعرفت احل المشكلة






__________________
لا إله إلا الله محمد رسول الله
سورية is offline   قديم 05-06-2006, 06:26 PM
الرد مع إقتباس
عضو فعال
#33  

الأخ besho وفقك الله لكل خير

أشكرك على تشريفك للموضوع وكم تمنيت أن تقرأ ماكتبت حتى يعم الموضوع بالنقاش العلمي من شخص بمكانتك أيها الأخ الكريم ولكن سأختصر لكم الطريق بما أن هناك كثير من الاخوان يطالب بمسألة التحويل.

سأذكر لك إحدى الطرق في التحويل.

الان وحسب ماقرأنا في الموضوع هناك 4 طبقات داخليه و3 طبقات خارجيه.

الطبقات الداخليه ترتيبها كالتالي:
خادم ------> قاعده -----> جدول -------> حقل

لذلك إذا أردت أن تقوم بالتحويل يجب عليك العمل من الأعلى الى الأسفل
بمعنى أوضح أن نقوم أولاً بتحويل ترميز طبقة الحقل وبعده ترميز طبقة الجدول وبعده ترميز طبقة القاعده واخيراً ترميز طبقة الخادم.
ترميز طبقة الخادم أمره سهل وقد ذكرنا هذا في أول الموضوع بأن نستخدم الجمله التاليه عند الإتصال:
كود HTML:
set character_set_server='cp1256';
أما الطبقات الخارجيه الثلاثه كلها فأمرها سهل أيضاً ونستخدم الجمله التاليه عند الإتصال:
كود HTML:
set names cp1256;
باقي الطبقات الداخليه الثلاثه وهي مرتبه كالتالي:
حقل ----> جدول -----> قاعده

أولا: طبقة الحقل
الان حتى نبدأ بتحويل ترميز حقل من الحقول يجب أن يكون هذا الحقل ذو بيانات نصيه ؟
بمعنى أن يكون الحقل أحد الأنواع التاليه:
set
enum
char
varchar
text
mediumtext
longtext
وهذه الأنواع يجب تحويلها إلى صيغه ثنائيه ( binary ) وكما تعلم هناك انواع للحقول الثنائيه في الـ mysql وهي كالتالي:
binary
varbinary
blob
mediumblob
longblob
لذلك يحول كل نوع حقل من الحقول النصيه حسب التسلسل التالي:
كود:
set ----------------> blob
enum -------------> blob
char --------------> binary
varchar ----------> varbinary
text --------------> blob
mediumtext -----> mediumblob
longtext ---------> longblob
لتفاصيل أكثر عن الحقول النصيه في الـ Mysql أدخل على الرابط التالي:
http://dev.mysql.com/doc/refman/4.1/...-overview.html

لنفرض على سبيل المثال لدينا حقل إسمه f1 ونوعه char ومقاسه 10
نقوم بتحويل ترميزه حسب الأمرين التاليه:
كود HTML:
ALTER TABLE `table` CHANGE f1 f1 binary(10);
ALTER TABLE `table` CHANGE f1 f1 char(10) CHARACTER SET cp1256;
يجب التركيز على مسألة المقاس ولا تهملها ولاحظ في المثال السابق أنني حولت 10 الى 10.

السؤال المهم الان:
ماذا لو كانت الجداول في قاعدة بياناتك بها أكثر من حقل نصي فكيف ستتعامل مع هذا الكم منها ؟
بصراحه وبكل وضوح يجب عليك التعامل معها كلها أولاً



ثانياً : طبقة الجدول
بعد الانتهاء من تحويل ترميز الحقول النصيه كلها في أي جدول تقوم بتحويل ترميز الجدول حسب الأمر التالي:
كود HTML:
ALTER TABLE `table` DEFAULT CHARACTER SET cp1256
يالله كم هو سهل جداً تحويل ترميز الجدول اسهل بكثير من طبقة الحقول


ثالثاً: طبقة القاعده
بعد الانتهاء من تحويل ترميز الجداول كلها تقوم بتحويل ترميز القاعده حسب الأمر التالي:
كود HTML:
ALTER DATABASE `db` DEFAULT CHARACTER SET cp1256
أيضاً سهل تحويلها

يعني التعقيد كله في طبقة الحقل
أعتقد ستتسائل هل هناك طريقه أسرع وأسهل؟؟
الجواب نعم هناك طريقه أسرع بأمر mysqldump وهي نفس الطريقه التي شرحتها بالسابق للأخوان المستضيفين أو أصحاب الخوادم الخاصه ولكن بالنسبه للعميل فلا يوجد لدي إلا هذه الطريقه المعقده .

عيوب الطريقه السابقه:
1- لا يمكن التحويل الى ترميز اليونيكوود utf8 أو ucs2 أو العكس ( من واقع تجربه ) .
2- إذا كان السرفر يعمل على الـ safemode سوف تفشل طريقة التحويل لأن أقصى وقت محدد لتنفيذ عمليات الـ php هو 30 ثانيه.



قمت ببرمجة سكربت بالـ php يقوم هذا السكربت بأخذ جداول قاعدة بيانات تحددها له وبعدها يبدأ هذا السكربت بأخذ كل جدول وجمع كل حقوله وبعدها يقوم بتحويل هذه الحقول واحداً تلو الآخر بطريقه تلقائيه وبعد أن ينتهي من تحويل الحقول يقوم بتحويل ترميز الجدول ويبدأ بعدها بالجدول التالي وهكذا حتى ينتهي من كل الجداول وبعدها ينتهي بتحويل ترميز قاعدة البيانات.

السكربت بالمرفق .

ملاحظه مهمه جداً قبل الإستخدام:
خذ نسخه إحتياطيه قبل القيام بتنفيذ السكربت.


ملاحظه مهمه جداً بعد الإستخدام:
بعد نجاح عملية التحويل يجب عليك إرسال الأوامر التاليه في كل إتصال بالقاعده:

كود HTML:
set character_set_server='cp1256';
set names cp1256;

الأخ سورية
بعد الإتصال بالقاعده يجب أن تستخدم الأمرين التاليه في البدايه:
كود HTML:
set character_set_server='cp1256';
set names cp1256;

وأي سؤال في السكربت أو في الطريقه المعقده أنا حاضر.






الملفات المرفقة
نوع الملف: zip c.zip‏ (1.6 كيلوبايت, 663 مشاهدة)
العندليب is offline   قديم 05-06-2006, 07:45 PM
الرد مع إقتباس
مشرف قسم التجارة في الاستضافة / خبير سيرفرات لينكس
#34  

اخي العندليب - جزاك الله خيرا وشكرا على السكريبت الذي هو الان في بطن سوالف

لن احملة الان ولكن سوف احملة وقت الحاجة فهو بجهازي لن يبقى اكثر من 10 دقائق وانسى مكانة اما هنا فهو ثابت باذن الله.
لم تجبني عن موضوع لو اني احفظ بيناتي ك UTF8 هل انا مضطر الى العمل بكل هذة التعقيدات .؟

اعلم ان الترميز العربي اصغر حجما ولكن - لا اريد الغوص بالمعمعة .

انا مستخدم عادي وعندي سجل زوار فرحان فية واتفاخر امام اصحابي ان السيرفر MYSQL5 هل بان احفظ البينات UTF
يغنيني عن موضوع تعديل الاتصال وتحويل الجداول وووووو . ؟

هنا السؤال الذي سوف يحدد ما هو الترميز المستخدم .






beshoo is offline   قديم 05-06-2006, 10:02 PM
الرد مع إقتباس
عضو فعال
#35  

أعتذر عن عدم الرد على سؤالك
اهتميت بالتحويل ونسيت الباقي
على كل حال
بالنسبه لسؤالك التالي
إقتباس:
هل بان احفظ البينات UTF
يغنيني عن موضوع تعديل الاتصال وتحويل الجداول وووووو . ؟
لا لن يغنيك طبعا
يجب أن تحول قاعدتك الى ترميز يونيكوود مع قانون محدد تختاره وأيضا تعدل ترميز الطبقات الخارجيه مثل الخطوات السابقه.

يجب أن تعلم أن اليونيكوود له قوانين متعدده
طبق الأمر التالي حتى تعرف ماهي هذه القوانين
فكل لغه لها قانون
كود PHP:
show collation like 'utf%' 
لمعلومات أكثر قم بزيارة الصفحه التاليه:
http://mysql.inspire.net.nz/doc/refm...t-unicode.html

وإذا تبي نصيحتي
إبعد عن هذا الترميز لأن هناك مشاكل برمجيه كثيره مع اليونيكوود.


الحمدلله إستفدت كثيراً من مسألة تحويل الترميز الى الترميز العربي cp1256
أقرب مثال هو سكربت القران الكريم
فالبحث في سكربت القران الكريم لن يكون دقيقاً حسب الحرف الا إذا حول الترميز الى العربي.

جرب الرابط التالي وابحث وأعطني رأيك
http://www.yoom-a5r.com/quran.php?do=searchform

موفق






العندليب is offline   قديم 05-06-2006, 11:06 PM
الرد مع إقتباس
مشرف قسم التجارة في الاستضافة / خبير سيرفرات لينكس
#36  

سلام عليكم


اخي العندليب - عمل فعلا رائع .
ولكن السؤال - هل كل موقع UTF سوف يحوس هالحوسة

وماذا عن المواقع القديمة التي تود ان تحدث ؟
ماذا يفعل بالبداية ؟

يعني الداتا موجودة هل يحدث الى الجديد ومن ثم يطبق السكريبت تبعك ؟
ام يطبقة قبل التحديث ؟


ومن ناحية اخرى هل يمكنني ان اتشرف باضافتك لي في قائمة المسنجر ؟

beshoo
@ hotmail.com






beshoo is offline   قديم 06-06-2006, 12:05 AM
الرد مع إقتباس
عضو فعال
#38  

السلام عليكم,,

موضوع رائع ومفيد جداً وبأذن الله سأقرأه ثانياً جيداً بعد انتهاء الاختبارات يوم الخميس






__________________
سبحان الله وبحمده ... سبحان الله العظيم.
إقرأ .. لتتعلم
[AJAX] سكربت إتصل بنا (ديف كونتاكت) النسخة 2.3.2
للتواصل ..
Developer. is offline   قديم 06-06-2006, 03:25 AM
الرد مع إقتباس
عضو فعال
#39  

إقتباس:
المشاركة الأصلية بواسطة beshoo
سلام عليكم


اخي العندليب - عمل فعلا رائع .
ولكن السؤال - هل كل موقع UTF سوف يحوس هالحوسة
وعليكم السلام ورحمة الله وبركاته
اي موقع يريد تحويل ترميز موقعه سواءا كان UTF او غيره سيتعب قليلا في البدايه وللمعلوميه فإن السكربت الذي أرفقته لا يصلح للتحويل الى UTF لانه يتطلب إدخال الـ collation وأنا لم أقم بذلك.

إقتباس:
المشاركة الأصلية بواسطة beshoo
وماذا عن المواقع القديمة التي تود ان تحدث ؟
ماذا يفعل بالبداية ؟
اي موقع يريد أن يطبق الطريقه عليه أولا أخذ نسخه احتياطيه من القاعده وبعدها يقوم بالتحويل ولا تنسى إضافة السطرين الأخيره لتعديل الطبقات الخارجيه وطبقة الخادم فهذه تتطلب تعديل برمجي.



إقتباس:
المشاركة الأصلية بواسطة beshoo
يعني الداتا موجودة هل يحدث الى الجديد ومن ثم يطبق السكريبت تبعك ؟
ام يطبقة قبل التحديث ؟
لا يوجد هناك فرق سواءاً بعد أو قبل ولكن إذا تم التحويل يجب إضافة السطرين الأخيره لتعديل الطبقات الخارجيه وطبقة الخادم الى السكربت كالتالي:
كود PHP:
mysql_query("set character_set_server='cp1256'");
mysql_query("set names cp1256"); 

الاخ -Developer-
شكرا على تشريفك ووفقك الله لما يحب ويرضى وننتظر تعقيبك.






العندليب is offline   قديم 06-06-2006, 09:05 AM
الرد مع إقتباس
عضو فعال
#40  

متابع بصمت
لا تعليق حتى هذه اللحظة حتى يتم تطبيقها على منتداي بإذن الله






__________________
http://www.vb2plus.com/index.php?action=news&id=12
أقوى نظام بنرات عرفته المنتديات
جريح الحب is offline   قديم 06-06-2006, 08:41 PM
الرد مع إقتباس
عضو سوبر نشيط
#41  

السلام عليكم
أشكرك أخي العندليب على هذا الموضوع الرائع، لدي ملف sql من قاعدة بيانات قديمة النسخة 4.0 الترميز utf-8 وليس windows-1256 وأريد زرعها في قاعدة بيانات جديدة في حاسوبي الذي يحتوي على نظام ubuntu 6.06 و mysql 5 ، بعد قراءتي للموضوع قمت بإضافة الأسطر التالية إلى my.cnf

كود:
default-character-set = cp1256
[server]
default-character-set = cp1256
[client]
default-character-set = cp1256
وكانت النتيجة عند زرع الملف أصبحت الجدوال والخلاياcp1256_general_ci وبإمكاني مشاهدة النص العربي في phpMyAdmin أما في برنامجي "المجلة" أضفت سطرين
كود PHP:
$GLOBALS['DB']->execute("set character_set_server='cp1256';");
$GLOBALS['DB']->execute("set names cp1256;"); 
فظهر النص العربي في الصفحة على هيئة windows-1256. وأنا أريده أن يكون utf-8 حتى يكون متوافقاً مع القوالب، لذا عدلت السطرين السابقين إلى التالي:
كود PHP:
$GLOBALS['DB']->execute("set character_set_server='utf8';");
$GLOBALS['DB']->execute("set names utf8;"); 
فظهر النص كما أريد مع بقاء القاعدة على ترميز cp1256_general_ci.
لك جزيل الشكر على إثراءك للموضوع، فقد حللت لي عقدة.






__________________
عزوز الحسني
أبو ماجد الصارم is offline   قديم 07-06-2006, 01:27 AM
الرد مع إقتباس
مشرف قسم التجارة في الاستضافة / خبير سيرفرات لينكس
#42  

طيب اخوي الصارم سؤال
لو قمت بادخال بينات من فورم مثلا من صفحة معينة وكانت الهدر تبع الصفحة UTF-8 الن يتم التخزين بالقاعدة UTF-8 ?

وانت تقول ان البينات تم حفظها 1256 ?

بالمناسبة عندك مسنجر ؟






beshoo is offline   قديم 07-06-2006, 01:47 AM
الرد مع إقتباس
عضو سوبر نشيط
#43  

فاتتني هذه المسالة لم أجرب إلا بعد ردك، أما المسنجر فقد أضفتك






__________________
عزوز الحسني
أبو ماجد الصارم is offline   قديم 07-06-2006, 02:08 AM
الرد مع إقتباس
عضو فعال
#44  

إقتباس:
المشاركة الأصلية بواسطة beshoo
طيب اخوي الصارم سؤال
لو قمت بادخال بينات من فورم مثلا من صفحة معينة وكانت الهدر تبع الصفحة UTF-8 الن يتم التخزين بالقاعدة UTF-8 ?

وانت تقول ان البينات تم حفظها 1256 ?

بالمناسبة عندك مسنجر ؟

أصبت بارك الله فيك

الزميل أبو ماجد الصارم
عليك التركيز على نوع الإرسال ونوع الإستقبال:
1- إرسال المعلومه الى الخادم ( الإتصال+العميل).
2- إستقبال المعلومه من الخادم ( النتائج ).

في ردك السابق كنت قد عدلت كل هذه الطبقات بالأمر التالي:
كود PHP:
$GLOBALS['DB']->execute("set names utf8;"); 
وبالتالي فإن البيانات المرسله منك إلى الخادم (الإتصال+العميل) ستكون Utf8 وسوف تدخل في القاعده بصيغة Utf8
وهنا سيظهر خلل في عرض البيانات الأخيره التي تم إدخالها وممكن تشاهدها مثل العلامات الغريبه ( ؟؟؟؟؟؟؟؟؟؟؟ ) .
أما البيانات السابقه فقد تم تحويلها من ترميز cp1256 الى ترميز utf8 بطبقة النتائج.

في إعتقادي أن طريقة الخلط بين العرض وبين الإرسال بتراميز مختلفه متعبه.

السؤال المهم هنا:
كيف ستغير ترميز طبقه واحده من الطبقات الخارجيه ؟
الجواب :

تغيير طبقة النتائج فقط بالأمر التالي:
كود PHP:
set character_set_results='cp1256'
تغيير طبقة الإتصال فقط بالأمر التالي:
كود PHP:
set character_set_connection='cp1256'
تغيير طبقة العميل فقط بالأمر التالي:
كود PHP:
set character_set_client='cp1256'
أما بخصوص تعديلك التالي:
كود HTML:
[server]
default-character-set = cp1256
[client]
default-character-set = cp1256
فهذه تعدل 4 طبقات وهي طبقة الخادم ([server]) والطبقات الخارجيه كلها ( [client] ) .
عند إنشاءك لقاعده جديده لم تحدد ترميزها سيتم وضع ترميز طبقة الخادم عليها والذي قمت بتعديله في تطبيقك السابق على ملف My.cnf وهذا ماحدث معك في ملف النسخه 4.0 الذي لا يحتوي على أي تعليمات لوضع الترميز سواءا للجدول أو الحقل أو حتى القاعده فأصبحت القاعده بالترميز العربي cp1256 وأصبحت البيانات المدخله في القاعده ترميز عربي cp1256 وهذا بسبب تعديلك على الطبقات الخارجيه.


أشكركم على المداخله.






العندليب is offline   قديم 07-06-2006, 12:31 PM
الرد مع إقتباس
عضو سوبر نشيط
#45  

السلام عليكم من جديد ....

كنت قد طرحت مشاركة سابقا عن التغيير لنظام uft-8 .... و تابعت الموضوع و الردود ....... إلى ان اتى تدخل الأخ bechoo الذي نطق و اخرج شي كنت ٍأقوم بطرحه ،و في كل رد له كان ينوب عني تقريبا في نفس السؤال الذي كنت اود طرحه .....

عزيزي العندليب بصراحة موضوع راع و شيق للغاية ، لكن لي تدخل اخر في الموضوع .... تحويل نظام القاعدة قد يكون جدي و فعلي للغاية للترميز cp1256 ، و يكون اسهل لاصحاب السيرفرات .... لكن .... لكن .... ماذا عن اصحبا المواقع المستضافة ، و ماذا عن من يملك موقع مستضاف على احدى الشركات الاجنبية و الاكيد انهم كثرة ، لم تم مراسلة الشركة لن يلبو الطلب بتغيير نظام التخزين و هذا شيء اكيد ، لذا ارجوا ان تكون الحلول مبينة على ان هناك اصحاب مواقع قدرتهم تكون محدوة فقط على نظام القاعدة و نظام السكريبت الخاص بهم ...

هذا من جهة الان ادخل لصلب الموضوع .... أغلب السكريبتات العالمية تتجه نحو الترميز العالمي uft-8 ، و طبعا عندما ياتي دور التعريب لهذا السكريبتات يكون علينا في اغلب الظروف تحويل نظام الترميز إلى windows-1256 ..... و بعد مرور الايام و تكدس المعطيات في القاعدة ، يفاجاك أصحاب السكريبت بخاصيات أو بأشياء يتوجب عليك التحويل إلى نظام uft-8 و طبعا تحويل الترميز السكريبت إلى ذلك يؤدي إلى تشوه النتائج و ظهور حروف غريبة و ...... و يكون الحل ، إما إعادة الموقع من الصفر بالترميز utf-8 أو الاستمرار في windows-1256 و هذا يؤدي إلى بقائنا في النظام القديم ... و نحن نريد ان نتطور و نساير كل المستجدات ....

طرحت سكريبت و تجاهلت فيه uft-8 .... لي رجاء سكريبت تغيير النظام من windows-1256 إلى utf-8 ....
أرجوا الإفادة في الموضوع لانه موضوع سيغير أشياء كثيرة و سيجعلنا نستريح من عقدة التحويل للترميز uft-8 ...


كنت قد طرحت مسبقا كود مبدئي للتحويل وهو نفس الكود الذي اعتمدت عليه في التحويل ، لكن ينقصني شيء او حلقة لا أعرف ما هي ... قد أكون أهدف إلى نظام مغير للنظام الذي تدعوا له ، لكن هذه متطلبات خاصة و أهمية و كما قلت لك اغلب السكريبتات العالمية الان تعتمد نظام utf-8 و لا تريد الخوض في مسألة النظام القديم و هذا يجعلنا في إحدى الجوانب اشخاص متاخرين عن الركب .....






__________________
لا تطمعن في كرم من غرته شهرته ، فقد نسي انه بالأمس نجح بكرم الاخرين
e107 المعربة www.e107arabic.org
شبكة الباتشات و السوفتوير www.all-patch.org
شركة استضافة مغربية www.naja7host.com
all-patch is offline   قديم 10-06-2006, 01:11 AM
الرد مع إقتباس
عضو فعال
#46  

وعليكم السلام ورحمة الله وبركاته

حي الله زميلنا all-patch
ونورت الموضوع والنقاش أيضاً

بالنسبه لسؤالك التالي:
إقتباس:
ماذا عن اصحبا المواقع المستضافة ، و ماذا عن من يملك موقع مستضاف على احدى الشركات الاجنبية و الاكيد انهم كثرة ، لم تم مراسلة الشركة لن يلبو الطلب بتغيير نظام التخزين و هذا شيء اكيد ، لذا ارجوا ان تكون الحلول مبينة على ان هناك اصحاب مواقع قدرتهم تكون محدوة فقط على نظام القاعدة و نظام السكريبت الخاص بهم ...
عزيزي ليس من الواجب مخاطبة المستضيف لتغيير ترميز طبقة الخادم أو ترميز قواعد البيانات.
إن كنت صاحب موقع فقط قم بتطبيق الخطوات التي ذكرتها في ردي رقم 23

اما بخصوص تساؤلك التالي:
إقتباس:
طرحت سكريبت و تجاهلت فيه uft-8 .... لي رجاء سكريبت تغيير النظام من windows-1256 إلى utf-8 ....
أرجوا الإفادة في الموضوع لانه موضوع سيغير أشياء كثيرة و سيجعلنا نستريح من عقدة التحويل للترميز uft-8 ...
الحقيقه إعتمدت في برمجة السكربت على القيمه الإفتراضيه للـ collation ( القانون ) حسب الترميز المطلوب في السكربت.
لاحظ معي الجدول التالي:
كود HTML:
+----------+-----------------------------+---------------------+--------+
| Charset  | Description                 | Default collation   | Maxlen |
+----------+-----------------------------+---------------------+--------+
| big5     | Big5 Traditional Chinese    | big5_chinese_ci     |      2 |
| dec8     | DEC West European           | dec8_swedish_ci     |      1 |
| cp850    | DOS West European           | cp850_general_ci    |      1 |
| hp8      | HP West European            | hp8_english_ci      |      1 |
| koi8r    | KOI8-R Relcom Russian       | koi8r_general_ci    |      1 |
| latin1   | cp1252 West European        | latin1_swedish_ci   |      1 |
| latin2   | ISO 8859-2 Central European | latin2_general_ci   |      1 |
| swe7     | 7bit Swedish                | swe7_swedish_ci     |      1 |
| ascii    | US ASCII                    | ascii_general_ci    |      1 |
| ujis     | EUC-JP Japanese             | ujis_japanese_ci    |      3 |
| sjis     | Shift-JIS Japanese          | sjis_japanese_ci    |      2 |
| hebrew   | ISO 8859-8 Hebrew           | hebrew_general_ci   |      1 |
| tis620   | TIS620 Thai                 | tis620_thai_ci      |      1 |
| euckr    | EUC-KR Korean               | euckr_korean_ci     |      2 |
| koi8u    | KOI8-U Ukrainian            | koi8u_general_ci    |      1 |
| gb2312   | GB2312 Simplified Chinese   | gb2312_chinese_ci   |      2 |
| greek    | ISO 8859-7 Greek            | greek_general_ci    |      1 |
| cp1250   | Windows Central European    | cp1250_general_ci   |      1 |
| gbk      | GBK Simplified Chinese      | gbk_chinese_ci      |      2 |
| latin5   | ISO 8859-9 Turkish          | latin5_turkish_ci   |      1 |
| armscii8 | ARMSCII-8 Armenian          | armscii8_general_ci |      1 |
| utf8     | UTF-8 Unicode               | utf8_general_ci     |      3 |
| ucs2     | UCS-2 Unicode               | ucs2_general_ci     |      2 |
| cp866    | DOS Russian                 | cp866_general_ci    |      1 |
| keybcs2  | DOS Kamenicky Czech-Slovak  | keybcs2_general_ci  |      1 |
| macce    | Mac Central European        | macce_general_ci    |      1 |
| macroman | Mac West European           | macroman_general_ci |      1 |
| cp852    | DOS Central European        | cp852_general_ci    |      1 |
| latin7   | ISO 8859-13 Baltic          | latin7_general_ci   |      1 |
| cp1251   | Windows Cyrillic            | cp1251_general_ci   |      1 |
| cp1256   | Windows Arabic              | cp1256_general_ci   |      1 |
| cp1257   | Windows Baltic              | cp1257_general_ci   |      1 |
| binary   | Binary pseudo charset       | binary              |      1 |
| geostd8  | GEOSTD8 Georgian            | geostd8_general_ci  |      1 |
| cp932    | SJIS for Windows Japanese   | cp932_japanese_ci   |      2 |
+----------+-----------------------------+---------------------+--------+
أمام كل إسم ترميز تجد القيمه الإفتراضيه للـ collation ( القانون ).
فترميز cp1256 العربي ستكون القيمه الإفتراضيه لقانونه هي cp1256_general_ci
وترميز utf8 ستكون القيمه الإفتراضيه لقانونه هي utf8_general_ci
بإمكانك وضع Utf8 في السكربت الذي برمجته ولكن سوف يصبح الـ collation ( القانون ) المستخدم هو الـ utf8_general_ci والذي بسببه يظهر الحرف العربي مشوه في طريقتك التي ذكرتها في ردك السابق في أول الموضوع.
لاحظ معي أنواع الـ collations ( القوانين ) المدرجه لترميز الـ utf8
كود HTML:
+--------------------+---------+-----+---------+----------+---------+
| Collation          | Charset | Id  | Default | Compiled | Sortlen |
+--------------------+---------+-----+---------+----------+---------+
| utf8_general_ci    | utf8    |  33 | Yes     | Yes      |       1 |
| utf8_bin           | utf8    |  83 |         | Yes      |       1 |
| utf8_unicode_ci    | utf8    | 192 |         | Yes      |       8 |
| utf8_icelandic_ci  | utf8    | 193 |         | Yes      |       8 |
| utf8_latvian_ci    | utf8    | 194 |         | Yes      |       8 |
| utf8_romanian_ci   | utf8    | 195 |         | Yes      |       8 |
| utf8_slovenian_ci  | utf8    | 196 |         | Yes      |       8 |
| utf8_polish_ci     | utf8    | 197 |         | Yes      |       8 |
| utf8_estonian_ci   | utf8    | 198 |         | Yes      |       8 |
| utf8_spanish_ci    | utf8    | 199 |         | Yes      |       8 |
| utf8_swedish_ci    | utf8    | 200 |         | Yes      |       8 |
| utf8_turkish_ci    | utf8    | 201 |         | Yes      |       8 |
| utf8_czech_ci      | utf8    | 202 |         | Yes      |       8 |
| utf8_danish_ci     | utf8    | 203 |         | Yes      |       8 |
| utf8_lithuanian_ci | utf8    | 204 |         | Yes      |       8 |
| utf8_slovak_ci     | utf8    | 205 |         | Yes      |       8 |
| utf8_spanish2_ci   | utf8    | 206 |         | Yes      |       8 |
| utf8_roman_ci      | utf8    | 207 |         | Yes      |       8 |
| utf8_persian_ci    | utf8    | 208 |         | Yes      |       8 |
+--------------------+---------+-----+---------+----------+---------+
هل ترى قانون للغه العربيه؟
الظاهر أنهم وضعوا قانون اللغه العربيه مع اللغه الفارسيه utf8_persian_ci أصبح العرب من الفرس ياساتر.

طريقتك السابقه كانت كالتالي:
كود PHP:
ALTER TABLE myTable MODIFY myColumn BINARY(255);
 
ALTER TABLE myTable MODIFY myColumn VARCHAR(255CHARACTER SET utf8 
أنت لم تحدد القانون فيها لذلك أصبح القانون هو utf8_general_ci وأعتقد هذا هو سبب تشويه الحرف العربي فيها.

جرب تعديل الأمر بالشكل التالي:
كود PHP:
ALTER TABLE myTable MODIFY myColumn BINARY(255);
 
ALTER TABLE myTable MODIFY myColumn VARCHAR(255CHARACTER SET utf8 COLLATE utf8_persian_ci 
هناك قانون آخر وهو utf8_unicode_ci ولا أدري هل يغني عن هذا الفارسي أم لا.

جرب وأعطنا نتائجك.

ملاحظه مهمه:
ترميز utf8 يختلف عن ترميز ucs2 .
لمزيد من المعلومات أدخل على الرابط التالي:
http://mysql.inspire.net.nz/doc/refm...t-unicode.html

بالتوفيق






العندليب is offline   قديم 10-06-2006, 11:16 AM
الرد مع إقتباس
عضو سوبر نشيط
#47  

عدت اليك و بسرعة .... فكرة و فراضية خطرت على البال و اود التحدث فيها .....

عند تركيب سكريبت معين ، كمجلة او منتدى ، لاحظ معي ان السكريبت لا يقوم يتغيير نظام القاعدة في الترميز بل يستخدم الترميز الحالي للقاعدة إضافة إلى ترميز السكريب الذي يكون مثلا iso-******* على حسب اللغة ...

يظهر ترقية للسكريبت و في الترقية يتم التغيير لنظام uft-8 ، و الغريب في الامر ان السكريبت ايضا لا يقوم بالمس في ترميز القاعدة ، فقط تغيير الترميز في السكريبت يؤدي إلى عمل السكريبت و ظهور الحروف بسكل طبيعي !!!!!!!!!!!

هذه ليست فراضية بل حقيقة و تجربة شخصية ، لكن كل معطيات الموقع كانت بلغة غير العربية .....

فهل اللغة العربية لها تعامل خاص ؟؟؟؟

بخصوص القانون ب uft-8 ، جربت 3 قوانين و نفس النتيجة .....
utf8_unicode_ci
utf8_general_ci
utf8_persian_ci






__________________
لا تطمعن في كرم من غرته شهرته ، فقد نسي انه بالأمس نجح بكرم الاخرين
e107 المعربة www.e107arabic.org
شبكة الباتشات و السوفتوير www.all-patch.org
شركة استضافة مغربية www.naja7host.com
all-patch is offline   قديم 10-06-2006, 05:49 PM
الرد مع إقتباس
عضو سوبر نشيط
#48  

حللت و فكرت جيدا في سبب عدم تحويل ظهور اللغة العربية رغم تحويل القانون و الترميز ، و بعد عدة تجارب توصلت لهذا ، نحتاج لسكريبت يقوم بهذا :

استخراج المعلومات من الجداول و إعادة إدخال نفس المعلومات لكن بترميز utf-8 ، و ليس سكريبت لنغيير ترميز الحقول و القانون فقط .... لان المعطيات تظل مخزنة بترميز قديم .... و كما طرح الاخ beshoo لدينا فورم بترميز windows-1256 ، المعلموت المدخلة تكون بترميز windows-1256 و نحن نحتاج لإعادة إدخال تلك المعلومات بترميز utf-8 لتكون المعلومات المخزنة تناسب ترميز السكريبت ...

قمت بالعملية يدويا على بعض الحقول و نجحت الفكرة ، للاشارة فقط لم أقم بالتعديل على تغيير قانون القاعدة و لم أقم بتغيير اي شيء في القاعدة ... كل ما قمت به إعادة إدخال المعلومات بترميز uft-8 و ظهر كل شيء ممتاز .....

الان نحتاج إلى سكريبت يقوم بحفظ معلومات الجداول و إعادة زرع تلك الحقول بترميز utf-8 ...
نفس الفكرة استخدمها مطوروا جملة للانتقال لترميز utf-8 .

و شكرا لكم .






__________________
لا تطمعن في كرم من غرته شهرته ، فقد نسي انه بالأمس نجح بكرم الاخرين
e107 المعربة www.e107arabic.org
شبكة الباتشات و السوفتوير www.all-patch.org
شركة استضافة مغربية www.naja7host.com
all-patch is offline   قديم 10-06-2006, 06:05 PM
الرد مع إقتباس
عضو نشيط
#49  

السلام عليكم ورحمة الله

لك الشكر حتى ترضى أخي العندليب وزادك الله من علمه ونفع بك

والشكر موصول للإخوان الذي أثروا الموضوع بردودهم

كونوا بخير







آخر تعديل بواسطة p7r في 11-06-2006 الساعة 02:34 AM. السبب: خطأ إملائي
p7r is offline   قديم 11-06-2006, 02:08 AM
الرد مع إقتباس
عضو فعال
#50  

ما شاء الله تبارك الله
========
لقد أكملت قراءة هذا الموضوع ... ولقد استفدت منه كثيراً
جزاك الله خيرا أخي "العندليب" وجميع الذين قاموا بالتوضيح..






PHP-Master02 is offline   قديم 11-06-2006, 09:10 AM
الرد مع إقتباس
الرد على الموضوع


 

أدوات الموضوع

قوانين المشاركات
لا يمكنك كتابة مواضيع جديدة
يمكنك إضافة ردود
لا يمكنك إرسال مرفقات
لا يمكنك تعديل مشاركاتك

كود vB متاح
كود [IMG] متاح
كود HTML غير متاح
Trackbacks are متاح
Pingbacks are متاح
Refbacks are متاح



جميع الأوقات بتوقيت غرينتش +3. الوقت الآن هو 07:38 PM.