• 0

مشكلة في حروف اللغة العربية عند الاتصال بقاعدة البيانات اوراكل في لغة php

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

اواجه مشكلة عند جلب البيانات من قاعدة البيانات تكون الحروف المكتوبة باللغة العربية تظهر على هيئة علامات استفهام  في لغة 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) : "&nbsp;") . "</td>\n";
    }
    print "</tr>\n";
}
print "</table>\n";

oci_free_statement($stid);
oci_close($conn);

?>

 

قيمة المفتاح NLS_LANG

AMERICAN_AMERICA.ar8mswin1256

 

 

تمّ تعديل بواسطة khaled93

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

بعد إحضار البيانات من قاعدة البيانات ، سيكون الترميز 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
بتاريخ 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);

?>

 

بقيت كما هي المشكلة

 

تمّ تعديل بواسطة khaled93

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

تم حل المشكلة بتنصيب قاعدة بيانات جديدة مع تغيير الترميز

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن