Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal.
Estou com problemas em relação ao charset de um programa php que criei. Eu não tinha problemas com meu código enquanto estava com windows 7 e o wamp instalados, mas mudei para o Linux e fiz todas as instalações corretamente do apache2/php5/mysql, só estou com problemas com relação ao charset. Fiz todas as configurações de MySQL para que a database fique em utf-8 (ALTER DATABASE bancodedados DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;) no php.ini também está configurado para utf-8. No Eclipse está configurado para salvar os documentos em utf-8, e nos codigos html também está apontado com charset utf-8.
No entando, ao colocar em meu formulário a palavra Razão para gravação, no MySQL fica gravado como Razão, já tentei mudar tudo pro latin1 mais a acentuação fica pior.
Todo este meu problema ocorreu depois de começar a usar Linux, não sei se falta alguma configuração para que o resultado seja o esperado.
Espero que possam me ajudar.
Obrigado.
TODA a sua aplicação precisa estar em UTF-8 (banco, arquivos, HTML etc)
E não adianta só trocar a codificação da tabela. Tem que migrar os dados, removendo caracteres não-UTF-8
Veja este meu tutorial
Obrigado por tentatem ajudar galera.
Resolvi o problema colocando toda a configuração para UTF-8 (html/php/mysql) como expliquei anteriormente, e, um amigo programador me disse que eu deveria informar no arquivo de conexão com o banco o charset que eu deveria utilizar, então acrescentei apenas duas linhas no codigo para resolver:
ini_set('default_charset', 'UTF-8'); //esta linha antes de criar a variavel conexao
$conexao->query("SET NAMES utf8"); // esta linha depois dela criada.
Com isso, tanto a leitura quanto a gravação passaram a ser em UTF-8.
Mais uma vez obrigado por ajudarem.
EU recomendaria colocar so o UTf-8 nas paginas, em vez do banco