我试图从SQL select语句中获取响应,但是当我尝试回显编码为JSON的数组时,除了“ - ”之外我没有写任何内容我回应以确保自己进入循环。
$sql = "SELECT * FROM PREGUNTA WHERE PREGUNTA.pregunta LIKE '%$palabra_clave%' OR PREGUNTA.respuesta_correcta LIKE '%$palabra_clave%' OR PREGUNTA.respuesta_falsa_1 LIKE '%$palabra_clave%' OR PREGUNTA.respuesta_falsa_2 LIKE '%$palabra_clave%' OR PREGUNTA.retroalimentacion LIKE '%$palabra_clave%'";
$query = mysqli_query($con, $sql);
$json = array();
while($data = $query->fetch_assoc()){
$json[] = array(
'pregunta' => $data['pregunta'],
'respuesta_correcta' => $data['respuesta_correcta'],
'respuesta_falsa_1' => $data['respuesta_falsa_1'],
'respuesta_falsa_2' => $data['respuesta_falsa_2'],
'retroalimentacion' => $data['retroalimentacion']
);
echo $data['pregunta'];
echo '<br>';
}
echo json_encode($json);
我这是我的输出:
¿Cuál no es un lenguaje de programación web?
¿Cuál es el lenguaje web más importante?
答案 0 :(得分:3)
您的输入很可能不使用UTF-8字符编码。根据{{1}} json_encode
“所有字符串数据必须是UTF-8编码”。
当我传递一个包含“¿Cuálnoes un lenguajedeprogramaciónweb?”的数组时到json_encode
,它运作正常。但是,如果我首先将文本转换为ISO-8859-1,json_encode
将返回布尔false
,因此不输出任何内容。
使用(例如):
将变量分配给数组$json[] = array('pregunta' =>
mb_convert_encoding($data['respuesta_correcta'], 'UTF-8', 'ISO-8859-1'),
// ...
);
或将您的数据库和应用程序转换为使用UTF-8开始。