dekoo
Новичок
XML + БД Oracle, проблеммы с кодировкой
Добрый день.
Возникла неодназначная проблемма, отловить которую мне никак не удается. Обрисую ситуацию в кратце.
Имеем XML файл, читаем его следующим образом:
На выходе в браузере получаем нормальный, читабельный XML.
Далее возникает задача записать XML файл в БД Oracle 10g и прочитать его уже из БД в браузер. Решаем задачу след. образом:
Получаем ошибку - Input is not proper UTF-8, indicate encoding ! Также дамп в указанном месте (**) явно дает понять, что строка не в кодировке utf-8... вообще не понятно в какой кодировке. Напоминаю, что файл один и тот же, только читается либо напрямую, либо будучи предварительно подгруженным в БД.
PS: Вообще сам затрудняюсь локализовать проблемму, посему возможно довольно размытый вопрос получился. Просьба помочь в решении задачи )
Добрый день.
Возникла неодназначная проблемма, отловить которую мне никак не удается. Обрисую ситуацию в кратце.
Имеем XML файл, читаем его следующим образом:
PHP:
$filename = 'test.xml';
$dom = new DOMDocument();
$dom->load($filename);
header("Content-type: text/xml; charset=UTF-8");
print $dom->saveXML();
Далее возникает задача записать XML файл в БД Oracle 10g и прочитать его уже из БД в браузер. Решаем задачу след. образом:
PHP:
// читаем данные из CLOB поля в строку
$sql = 'SELECT FIELD AS XML FROM TABLE WHERE ID = '.$id.';
$con = new PDO(...);
$stmt = $con->prepare($sql);
$rez = $stmt->execute();
$rowset = $stmt->fetch(PDO::FETCH_ASSOC);
$xml_str = stream_get_contents($rowset['XML']);
// var_dump($xml_str); **
// die();
// выводим в браузер
$filename = 'test.xml';
$dom = new DOMDocument();
$dom->loadXML($xml_str);
header("Content-type: text/xml; charset=UTF-8");
print $dom->saveXML();
PS: Вообще сам затрудняюсь локализовать проблемму, посему возможно довольно размытый вопрос получился. Просьба помочь в решении задачи )