اذهب إلى المحتوى
  • 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
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 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
رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...