Quantcast
Channel: Tópicos
Viewing all articles
Browse latest Browse all 14700

Converter chars especiais para UTF-8

$
0
0
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):
<?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);
        */

?>

Viewing all articles
Browse latest Browse all 14700

Trending Articles