Неправильный формат запроса результата доктрины Symfony

У меня странная ситуация, и я не знаю, как ее исправить.

Я получил результат запроса в доктрине, формат которого выглядит странно.

Я использую doctrine для выполнения запроса, подобного следующему примеру:

$query = "select ... from ..."
$stmt = $this->oracleDB->prepare($query); 
(This oracleDB is configured in the config.yml with "charset: ISO-8859-1" and "driver: oci8")
$stmt->bindValue(1, $variable, "...");
more binds...
$stmt->execute();
$results = $stmt->fetchAll();

В большинстве случаев результаты являются нормальными, и json_encode работает, но иногда я получаю результат, подобный следующему:

dump($results);
array:1 [▼
  0 => array:6 [▼
    "BLA1" => "xx"
    "BLA2" => "XX"
    "BLA3" => "XX"
    "BLA4" => "XX"
    "BLA5" => b"XX"
    "BLA6" => "XX"
  ]
]
var_dump($results);
array (size=1)
  0 => 
    array (size=12)
      'BLA1' => string 'XX' (length=2)
      'BLA2' => string 'XX' (length=2)
      'BLA3' => string 'XX' (length=2)
      'BLA4' => string 'XX' (length=2)
      'BLA5' => string 'X�X' (length=3)
      'BLA6' => string 'XX' (length=2)

dump(json_encode($results));
false

если я отключу BLA5, json_encode будет работать нормально.

unset($result[0]['BLA5']);

dump($result);
array:1 [▼
0 => array:5 [▼
    "BLA1" => "xx"
    "BLA2" => "XX"
    "BLA3" => "XX"
    "BLA4" => "XX"
    "BLA6" => "XX"
  ]
]

dump(json_encode($results));
"[{"BLA1":"XX","BLA2":"XX","BLA3":"XX","BLA4":"XX","BLA6":"XX"}] ◀"

Любая идея?

Это могло быть из-за кодировки ISO-8859-1?

DonCallisto 06.06.2018 11:33

Да ... Мне сообщили, что это должен был быть ISO-8859-1, но в конце концов это не так. Другая кодировка. Спасибо!

Ricard Espinàs Llovet 06.06.2018 13:07
Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
0
2
47
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я ожидал получить базу данных с кодировкой ISO-8859-1, но на самом деле этого не произошло. Так что все под контролем. Спасибо!

Другие вопросы по теме