السلام عليكم ورحمة الله وبركاته
أولا: الموضوع ليس مشكلة! بل هو للنقاش.
فهذه المسألة شائعة أن تستخدم السكربتات العربية قاعدة بيانات بترميز latin1 والقانون غالباً ما يكون latin1_swedish_ci والسبب معروف، أن هذا الترميز هو الإفتراضي في MYSQL (سابقاً).
فمثلاً لدي قاعدة بيانات تستخدم القانون latin1_swedish_ci وتتعامل مع سكربتات php بترميز cp1256، وترميز ملفات html بالطبع سيكون windows-1256 (نفسه cp1256) وبعد تنزيل mysqldumb للقاعدة على شكل (*.sql) وعمل الخطوات التالية لم تأتي بنتيجة:
فمحاولة لفهم هذا الترميز، فتحته بمتصفح فايرفوكس وحاولت أن أجرب أكثر من ترميز معروف ولكن حروف اللغة العربية لم تظهر.
وتغيير الترميز هو فاشل دائما (عندي أنا)، مهما حاولت مع برنامج iconv (** هذا البرنامج موجود إفتراضياً عندي على أوبونتو)،
مع ذلك قاعدة البيانات لا تزال محافظة على محتواها بشكل رائع!. وأستطيع أن أتأكد من ذلك بهذا السكربت البسيط:
كود PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256" />
<title>Arabic test</title>
</head>
<body>
<?php
mysql_connect("localhost","root",'pass');
mysql_select_db("test_2");
$q_data=mysql_query("SELECT * FROM se_profiles");
while($r_object = mysql_fetch_array($q_data)) {
echo "\n";
foreach($r_object as $r_element)
echo "\n".$r_element;
}
?>
</body>
</html>
فيا ترى مالترميز الحقيقي للحروف العربية في قاعدة البيانات هذه؟؟
مثال على جدول قاعدة بيانات يحمل هذا الترميز الغريب!! في المرفقات.
--------------------
ملاحظة: بإتباع خطوات معقدة والتعديل على phpMyAdmin نفسه، نجحت في تحويل الترميز والحصول على نسخة صالحة.
لكن في حال كون قاعدة البيانات أكبر من 30 ميجا لا أعتقد أن تحويلها بواسطة phpMyAdmin فكرة حسنة! ببساطة لأن المتصفح لا يتحمل لصق أو نسخ نص بهذا الحجم ^^.
أنا أفكر في عمل سكربت يقوم بالخطوات التي عملتها لكن لست متأكداً من هذا الأمر.
----------------------
وتوقعي لهذا النوع من الترميز، هو ترميز هجين، وغير مدرج في قائمة الترميزات المعروفة!!. ولن نقدر على قراءته إلى بعد تمريرة إلى سيرفر mysql، وفتحه بالمتصفح!!