وعليكم السلام ورحمة الله وبركاته
حي الله زميلنا all-patch
ونورت الموضوع والنقاش أيضاً
بالنسبه لسؤالك التالي:
عزيزي ليس من الواجب مخاطبة المستضيف لتغيير ترميز طبقة الخادم أو ترميز قواعد البيانات.ماذا عن اصحبا المواقع المستضافة ، و ماذا عن من يملك موقع مستضاف على احدى الشركات الاجنبية و الاكيد انهم كثرة ، لم تم مراسلة الشركة لن يلبو الطلب بتغيير نظام التخزين و هذا شيء اكيد ، لذا ارجوا ان تكون الحلول مبينة على ان هناك اصحاب مواقع قدرتهم تكون محدوة فقط على نظام القاعدة و نظام السكريبت الخاص بهم ...
إن كنت صاحب موقع فقط قم بتطبيق الخطوات التي ذكرتها في ردي رقم 23
اما بخصوص تساؤلك التالي:
الحقيقه إعتمدت في برمجة السكربت على القيمه الإفتراضيه للـ collation ( القانون ) حسب الترميز المطلوب في السكربت.طرحت سكريبت و تجاهلت فيه 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 | +----------+-----------------------------+---------------------+--------+
فترميز 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أصبح العرب من الفرس ياساتر.
طريقتك السابقه كانت كالتالي:
أنت لم تحدد القانون فيها لذلك أصبح القانون هو utf8_general_ci وأعتقد هذا هو سبب تشويه الحرف العربي فيها.كود PHP:ALTER TABLE myTable MODIFY myColumn BINARY(255);
ALTER TABLE myTable MODIFY myColumn VARCHAR(255) CHARACTER SET utf8
جرب تعديل الأمر بالشكل التالي:
هناك قانون آخر وهو utf8_unicode_ci ولا أدري هل يغني عن هذا الفارسي أم لا.كود PHP:ALTER TABLE myTable MODIFY myColumn BINARY(255);
ALTER TABLE myTable MODIFY myColumn VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_persian_ci
جرب وأعطنا نتائجك.
ملاحظه مهمه:
ترميز utf8 يختلف عن ترميز ucs2 .
لمزيد من المعلومات أدخل على الرابط التالي:
http://mysql.inspire.net.nz/doc/refm...t-unicode.html
بالتوفيق


أصبح العرب من الفرس ياساتر.
رد مع اقتباس
