Boas pessoal, estou a fazer um pequeno teste onde tenho um ficheiro php que me devolve todos os utilizadores de uma base de dados em formato json . Se não houver utilizadores, o json retornado é suposto ser:
Array ( [sucesso] => 0 [erro] => 1 [msg_erro] => Não existem utilizadores na base de dados! )
O que acontece é que a mensagem de erro contem aquele 'ã', ou seja, um char especial, eu já usei a função utf8_encode e a mb_convert_encoding mas elas não resolvem o problema na totalidade, pois a mensagem enviada chega assim:
Array ( [sucesso] => 0 [erro] => 1 [msg_erro] => Não existem utilizadores na base de dados! )
Consigo contornar isto substituindo o 'ã' por "& atilde;" , o problema é que eu não posso fazer isto quando receber nomes com chars especiais da base de dados..
Alguma ajuda ?
Código (PHP):
Array ( [sucesso] => 0 [erro] => 1 [msg_erro] => Não existem utilizadores na base de dados! )
O que acontece é que a mensagem de erro contem aquele 'ã', ou seja, um char especial, eu já usei a função utf8_encode e a mb_convert_encoding mas elas não resolvem o problema na totalidade, pois a mensagem enviada chega assim:
Array ( [sucesso] => 0 [erro] => 1 [msg_erro] => Não existem utilizadores na base de dados! )
Consigo contornar isto substituindo o 'ã' por "& atilde;" , o problema é que eu não posso fazer isto quando receber nomes com chars especiais da base de dados..
Alguma ajuda ?
Código (PHP):
<?php
function getUsers() {
require_once 'connection.php';
mysql_select_db($con_database, $con) or die("erro mysql_select_db() -> users.php");
$users = array();
$resposta = array("sucesso" => 0, "erro" => 0);
$query = "SELECT * FROM utilizador WHERE nome = 'queroQueDeErro'";
$result = mysql_query($query);
$rows = mysql_num_rows($result);
if($rows > 0) {
$resposta["sucesso"] = 1;
while($row = mysql_fetch_assoc($result)) {
$users[] = array("cod" => $row["cod_utilizador"],
"password" => $row["password"],
"nome" => utf8_encode($row["nome"]),
"rank" => $row["tipo_utilizador"]);
}
$resposta["utilizadores"] = $users;
} else {
$resposta["erro"] = 1;
/*$value = mb_convert_encoding("Não existem utilizadores na base de dados!", "UTF-8");*/
$value = utf8_encode('Não existem utilizadores na base de dados!');
$resposta["msg_erro"] = $value;
}
return json_encode($resposta);
}
/*
$fp = fopen('resultados.json', 'w');
fwrite($fp, json_encode($resposta));
fclose($fp);
*/
?>
function getUsers() {
require_once 'connection.php';
mysql_select_db($con_database, $con) or die("erro mysql_select_db() -> users.php");
$users = array();
$resposta = array("sucesso" => 0, "erro" => 0);
$query = "SELECT * FROM utilizador WHERE nome = 'queroQueDeErro'";
$result = mysql_query($query);
$rows = mysql_num_rows($result);
if($rows > 0) {
$resposta["sucesso"] = 1;
while($row = mysql_fetch_assoc($result)) {
$users[] = array("cod" => $row["cod_utilizador"],
"password" => $row["password"],
"nome" => utf8_encode($row["nome"]),
"rank" => $row["tipo_utilizador"]);
}
$resposta["utilizadores"] = $users;
} else {
$resposta["erro"] = 1;
/*$value = mb_convert_encoding("Não existem utilizadores na base de dados!", "UTF-8");*/
$value = utf8_encode('Não existem utilizadores na base de dados!');
$resposta["msg_erro"] = $value;
}
return json_encode($resposta);
}
/*
$fp = fopen('resultados.json', 'w');
fwrite($fp, json_encode($resposta));
fclose($fp);
*/
?>