السبت، 23 نوفمبر 2013

حل مشكلة الصفحة البيضاء بعد تحويل ترميز المنتدى

بسم الله الرحمن الرحيم..
بعد أن قمت بتحويل أحد المنتديات التي أشرف عليها إلى ترميز utf-8 واجهنا مشكلة ظهور الصفحة البيضاء لمن أراد دخول لوحة التحكم الخاصة بالعضو أو أحد أقسامها كالرسائل الخاصة والخيارات.
بعد بحث؛ وجدنا أن سبب المشكلة هو اختلاف طول النص العربي عن النص اللاتيني في الترميز العالمي الموحد UTF ؛ فأي حرف غير لاتيني يحسب ب ٢ بايت وليس واحدا.
ويظهر أثر هذا الاختلاف في حقلين من الجدول usertextfield وهما:
pmfolders
subfolders
يظهر النص داخل هذين الحقلين بعد تحويل الترميز بهذه الصورة كمثال:
a:1:{i:1;s:10:"رسائل مهمة";}
a = عدد المجلدات (ولابد أن يكون الرقم الذي بعده مساويًا لعدد المجلدات، في مثالنا هذا لدينا مجلد واحد هو "رسائل مهمة").
i = الآي دي (id) الخاص بالمجلد
s = عدد حروف اسم المجلد.
والمشكلة غالبًا تكون في s:10 إذ المفترض أن يكون s:19 بناء على ما تقدم من أن أي نص غير لاتيني يحسب بـ 2 ويستثنى هنا المسافة فهي واحدة في الجميع.
والحل إذًا: إما تفريغ هذه الحقول، أو المرور عليها وتعديلها واحدًا واحدًا على نحو المثال الذي بينته.
ودمتم بخير وتوفيق،،

ليست هناك تعليقات :

إرسال تعليق