خالد ابو مهادي نشر 3 أكتوبر 2018 أرسل تقرير نشر 3 أكتوبر 2018 (معدل) السلام عليكم ورحمة الله وبركاته اواجه مشكلة عند جلب البيانات من قاعدة البيانات تكون الحروف المكتوبة باللغة العربية تظهر على هيئة علامات استفهام في لغة php بينما عند جلب البيانات من الجدول في صفحات مكتوبة بلغة asp.net تظهر بشكل طبيعي ????? ??????? مع العلم ان قاعدة البيانات عندي oracle 11g استخدمت في الاتصال بقاعدة البيانات الملف <?php //$conn = oci_connect('myDB', '001100', 'localhost/xe'); $conn = oci_connect('myDB', '001100', 'localhost/xe','AL32UTF8'); if (!$conn) { $e = oci_error(); trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR); } // Prepare the statement $stid = oci_parse($conn, 'SELECT * FROM EMPLOYEES_TBL'); if (!$stid) { $e = oci_error($conn); trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR); } // Perform the logic of the query $r = oci_execute($stid); if (!$r) { $e = oci_error($stid); trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR); } // Fetch the results of the query print "<table border='1'>\n"; while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) { print "<tr>\n"; foreach ($row as $item) { print " <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : " ") . "</td>\n"; } print "</tr>\n"; } print "</table>\n"; oci_free_statement($stid); oci_close($conn); ?> قيمة المفتاح NLS_LANG AMERICAN_AMERICA.ar8mswin1256 تم التعديل في 3 أكتوبر 2018 بواسطة khaled93 اقتباس
0 القعقاع بن غزي نشر 4 أكتوبر 2018 أرسل تقرير نشر 4 أكتوبر 2018 بعد إحضار البيانات من قاعدة البيانات ، سيكون الترميز char عبارة عن windows-1256. ,إذا كانت صفحت الويب الخاصة بك تستخدم الترميز utf-8 ، فستحتاج إلى تحويل السلسلة إلى utf-8. لهذا يمكنك استخدام iconv () مثال $win1256 = iconv('windows-1256', 'utf-8', $my_string); إذا استمرت المشكلة تأكد بأن الترميز في الصفحة على هذا النحو <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> يمكنك الإطلاع عن الأمر أكثر عبر هذه الروابط حل مشكلة ظهور اللغة العربية “؟؟؟” في أوراكل NLS_CHARACTERSET, AL16UTF16 to AL32UTF8 oracle 11.2.0.3 اقتباس
0 خالد ابو مهادي نشر 4 أكتوبر 2018 الكاتب أرسل تقرير نشر 4 أكتوبر 2018 (معدل) بتاريخ 2 ساعات قال القعقاع بن غزي: بعد إحضار البيانات من قاعدة البيانات ، سيكون الترميز char عبارة عن windows-1256. ,إذا كانت صفحت الويب الخاصة بك تستخدم الترميز utf-8 ، فستحتاج إلى تحويل السلسلة إلى utf-8. لهذا يمكنك استخدام iconv () مثال $win1256 = iconv('windows-1256', 'utf-8', $my_string); إذا استمرت المشكلة تأكد بأن الترميز في الصفحة على هذا النحو <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> يمكنك الإطلاع عن الأمر أكثر عبر هذه الروابط حل مشكلة ظهور اللغة العربية “؟؟؟” في أوراكل NLS_CHARACTERSET, AL16UTF16 to AL32UTF8 oracle 11.2.0.3 السلام عليكم هكذا الكود صحيح <html lang="ar" > <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> </head> <body> <?php //$conn = oci_connect('myDB', '001100', 'localhost/xe'); $conn = oci_connect('myDB', '001100', 'localhost/xe','AL32UTF8'); if (!$conn) { $e = oci_error(); trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR); } // Prepare the statement $stid = oci_parse($conn, 'SELECT * FROM EMPLOYEES_TBL'); if (!$stid) { $e = oci_error($conn); trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR); } // Perform the logic of the query $r = oci_execute($stid); if (!$r) { $e = oci_error($stid); trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR); } // Fetch the results of the query print "<table border='1'>\n"; while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) { print "<tr>\n"; foreach ($row as $item) { $win1256 = iconv('windows-1256', 'utf-8', $item); print " <td>" . ($win1256 !== null ? htmlentities($win1256, ENT_QUOTES) : " ") . "</td>\n"; } print "</tr>\n"; } print "</table>\n"; oci_free_statement($stid); oci_close($conn); ?> بقيت كما هي المشكلة تم التعديل في 4 أكتوبر 2018 بواسطة khaled93 اقتباس
0 خالد ابو مهادي نشر 7 أكتوبر 2018 الكاتب أرسل تقرير نشر 7 أكتوبر 2018 تم حل المشكلة بتنصيب قاعدة بيانات جديدة مع تغيير الترميز اقتباس
السؤال
خالد ابو مهادي
السلام عليكم ورحمة الله وبركاته
اواجه مشكلة عند جلب البيانات من قاعدة البيانات تكون الحروف المكتوبة باللغة العربية تظهر على هيئة علامات استفهام في لغة php
بينما عند جلب البيانات من الجدول في صفحات مكتوبة بلغة asp.net تظهر بشكل طبيعي
مع العلم ان قاعدة البيانات عندي oracle 11g
استخدمت في الاتصال بقاعدة البيانات الملف
قيمة المفتاح NLS_LANG
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.