Oracle соединение для извлечения или вставки арабских значений из базы данных - PullRequest
0 голосов
/ 31 января 2012

У меня есть этот код в drupal 6 для получения арабских значений из базы данных Oracle:

           <?php
            session_start();
            $conn=oci_connect('localhost','pass','IP....');
            $stid=oci_parse($conn,"select arabic_name from arabic_names_table");
            oci_execute($stid);
            if($row-oci_fetch_array($stid,OCI_ASSOC+OCI_RETURNS_NULLS))
                {
                 $name_ar=$row['arabic_name'];
                 }
           ?>

Когда значения извлекаются из БД или вставляются в БД, они выглядят следующим образом ???

Обратите внимание:

  • Моя база данных Oracle читает обычные арабские символы.Из PL / SQL я могу вставить арабские значения
  • Я установил mbstring
  • У меня включена кодировка utf-8.

Как решить эту проблему

1 Ответ

0 голосов
/ 14 августа 2012

Из базы данных oracle, когда вы пытаетесь получить данные, обычно вы получите кодировку символов, которая будет типом кодировки клиента, установленного в системе (машина, на которой вы установили php).Эта кодировка будет кодировкой реестра Windows для клиента Oracle.(см. HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraClient11g_home1), а ключ NLS_LANG.Если вы выполните поиск по значению вышеуказанного ключа, вы получите что-то вроде ARABIC_UNITED ARAB EMIRATES.AR8MSWIN1256.Обратите внимание, что тип кодировки AR8MSWIN1256.В массиве карты символов это отображается на windows-1256 (windows-1256 => AR8MSWIN1256).

См. Эту ссылку http://websvn.projects.ez.no/wsvn/ezoracle/?op=comp&compare[]=%2Fstable@385&compare[]=%2Fstable@386.

То есть после извлечения данных из базы данных кодировка char будет иметь вид windows-1256.Теперь, если ваша веб-страница использует кодировку utf-8, вам нужно преобразовать строку в utf-8.Для этого вы можете использовать iconv().

$win1256 = iconv('windows-1256', 'utf-8', $my_string); //$my_string -> windows-1256    
echo $win1256; // Results the utf-8 format .

Если у вас по-прежнему возникают проблемы, проверьте кодировку на странице, она должна быть utf-8.<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Думаю, это решит вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...