اذهب إلى المحتوى

السؤال

نشر (معدل)

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

اواجه مشكلة عند جلب البيانات من قاعدة البيانات تكون الحروف المكتوبة باللغة العربية تظهر على هيئة علامات استفهام  في لغة 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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...