【问题标题】:Symfony doctrine result query wrong formatSymfony 学说结果查询格式错误
【发布时间】:2018-06-06 08:11:46
【问题描述】:

我遇到了一个奇怪的情况,我不知道如何解决它。

我得到了一个格式看起来很奇怪的学说的查询结果。

我使用学说来执行如下一个示例的查询:

$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编码的原因?
  • 是的...我被告知它应该是 ISO-8859-1,但最后它不是。是另一个字符集。谢谢!

标签: json symfony doctrine


【解决方案1】:

我希望数据库具有字符集 ISO-8859-1,但实际上并没有。所以一切尽在掌握。谢谢!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-04
    • 2017-04-09
    • 1970-01-01
    • 1970-01-01
    • 2011-09-11
    • 1970-01-01
    相关资源
    最近更新 更多