UTF-8 não funciona em webservice PHP?

6 respostas Resolvido
phpwebservice
T

Eu criei um WebService simples, está funcionando, mas por algum motivo, o retorno dele não está vindo em UTF-8.

Código:

<?php
 require_once "connect.php";

 $query = "SELECT nome FROM rifas_vendidas UNION SELECT nome FROM lanches_vendidos;";
 $statement = $con->prepare($query);
 $statement->execute();
 while($row = $statement->fetch(PDO::FETCH_OBJ)){
 	print($row->nome.",");
 }
?>

Observações:

  • Eu já tentei colocar header('Content-Type: text/html; charset=utf-8');em todas as partes do código. Já tentei fazer com a tag meta do HTML.

  • O meu banco de dados e as minhas tabelas estão configurados para utilizar dados UTF-8.

Alguém tem uma sugestão?

6 Respostas

J

Não sei se é exatamente o problema, mas pra começar notei a falta do json_encode no seu código. Não precisa fazer o json na mão. Exemplo: http://stackoverflow.com/questions/2770273/pdostatement-to-json

T

Boa observação. Mas o problema não é esse. Eu também não vou retornar os dados em JSon, já que ambas tabelas só tem uma coluna. Prefiro só pegar uma lista separada por uma virgula mesmo.

J

Primeiro, parabéns por ter decidido usar web service, e seu código está bem enxuto sem parafernálias. Mas sobre não usar json, por que ser diferente se existe um formato que todo mundo entende? json_encode trabalha com UTF-8. Ao menos estará num caminho que a maioria passa, senão fica naquele ciclo que você passou em querer se conectar remotamente ao MySql.

T

Simplesmente porque eu acho desnecessário. E adicionaria mais umas três linhas na minha classe de comunicação com os webservice, sendo que o projeto já está pronto. Eu teria que modificar tudo. E é realmente desnecessário eu ter que usar Gson por exemplo, já que eu só quero pegar uma listinha. Mas se tu diz que json_encode já faz em UTF-8, eu posso adaptar o código. Mas me diz ae, não tem outra função como essa que trás os dados da forma que eu quero?

J
Solucao aceita

Tenta setar o charset na sua string de conexão:

(a forma de fazer depende da versão do PHP como falaram lá)

T

Muito obrigado, é exatamente o que eu precisava.

Criado 5 de abril de 2017
Ultima resposta 7 de abr. de 2017
Respostas 6
Participantes 2