Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Erro nos caracteres com acento

Olá! Estou tendo problemas com os caracteres com acento na minha aplicação. Os textos em html no site são mostrados com os acentos certinhos. Porém, quando o texto vai do site pro banco (no momento de um cadastro, por exemplo) os caracteres com acentos viram letras estranhas (áéíôúã viram áéíôúã). Quando os textos são puxados do banco, os acentos também não são exibidos da forma correta. A collation do banco está assim:

ALTER DATABASE `minha-base` CHARSET = UTF8 COLLATE = utf8_general_ci;

e a do html está assim:

<!DOCTYPE html>
<html lang="pt-br">
<head>


    <meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

Obrigada pela ajuda!

2 respostas

Oi Monique,

Se a página HTML e o MySQL estão configurados para UTF-8, a mudança na tabela de caracteres usada deve estar no navegador ou no servidor (a palavra que a pessoa digitar passa primeiro pelo navegador, depois pelo servidor e só depois pelo banco de dados).

Para checar se está no navegador, clica com o botão direito na página do navegador e clica na aba "Network", em seguida faz a inserção do produto. Clica na requisição feita e procura por algo como "request parameters". Se lá estiver estranho, tem que especificar a tabela de caracteres ao navegador, mas muito provavelmente aí estará correto.

Para checar se está no servidor, peça pra imprimir o nome do produto logo depois de pegá-lo com o GET no código, antes de enviar ao banco de dados. Se aí estiver errado, tem que especificar a tabela de caracteres ao servidor, usando o XAMMP.

Para configurar ao XAMMP que a tabela de caracteres será sempre UTF-8, dá pra seguir os seguintes passos (não testei, mas peguei desse link ):

  1. Abra o arquivo "my.ini" no diretório "C:\xampp\mysql\bin\".

  2. Edite as seguintes linhas:

# Adicione esse código antes de [client].
default-character-set=utf8

# Adicione esse código antes de [mysqld].
character-set-server=utf8
skip-character-set-client-handshake

# Adicione esse código antes de [mysqldump].
default-character-set=utf8

# Adicione esse código antes de [mysql].
default-character-set=utf8

Tenta essas mudanças e avisa se deu certo. :)

solução!

Deu certo! Muito obrigada!

Para quem usa o easyPHP como eu, o caminho do arquivo é: EasyPHP-Devserver-17\eds-binaries\dbserver\mysql5717x86x180108180145\