1
resposta

Impressão de resultado de pesquisa com acento em um resultado

Olá, estou fazendo uma consulta a partir do método post, utilizando o laravel e json, e estou com um problema quanto a acentuação de um resultado, por exemplo, se a consulta me retorna guaraná, recebo um erro de pesquisa falsa (se tiver convertendo em json) ou se eu tiro o encode de json ele me retorna o seguinte erro:

<!-- Malformed UTF-8 characters, possibly incorrectly encoded (500 Internal Server Error) -->

O código é o seguinte... Com Json_encode:

$router->post('/teste', function(Request $request) {
    if(!$request->isJson()) {
        return response()->json(["results" => [], "status" => 0, "message" => "This request isn't a JSON request."]);
    }
    $id = $request->json()->get('grupo');
    $results = DB::select('SELECT CODIGO, DESCRICAO, PRECO FROM PRODUTO WHERE GRUPO = :id', ['id' => $id]);
    ($results) ? $statusCode = 1 : $statusCode = 0;
    $statusCode = 1;
    ($statusCode) ? $mensagem = "Produto encontrado com sucesso." : $mensagem =  "Produto não encontrado.";
    return response()->json(["results" => json_encode($results), "status" => $statusCode, "message" => "Produto get successfully."]);
});

Sem Json_encode:

$router->post('/teste', function(Request $request) {
    if(!$request->isJson()) {
        return response()->json(["results" => [], "status" => 0, "message" => "This request isn't a JSON request."]);
    }
    $id = $request->json()->get('grupo');
    $results = DB::select('SELECT CODIGO, DESCRICAO, PRECO FROM PRODUTO WHERE GRUPO = :id', ['id' => $id]);
    ($results) ? $statusCode = 1 : $statusCode = 0;
    $statusCode = 1;
    ($statusCode) ? $mensagem = "Produto encontrado com sucesso." : $mensagem =  "Produto não encontrado.";
    return response()->json(["results" => $results, "status" => $statusCode, "message" => "Produto get successfully."]);
});

Grato desde já! Não sei se a dúvida é exatamente de laravel mas acho que envolve...

1 resposta

Mattheus, seu banco de dados provavelmente está usando um encoding diferente de UTF-8. JSON para estar bem formatado precisa ter apenas caracteres UTF-8 válidos.

Configure seu banco de dados para que ele use o encoding correto. :-)