hinom 5 Denunciar post Postado Junho 17, 2011 remova o uso da função utf8_decode, pois é desnecessária para o seu caso. utf8_decode($descricao) exemplo, a partir do script que postou no post #20 if ( isset($_POST['descricao']) ) { $descricao = addslashes( $_POST['descricao'] ); // ´proteção básica para evitar sql injection. $sql = "INSERT INTO respostas (resposta, perguntas_cod_pergunta, cod_usuario, tipo_usuario, data_cadastro) VALUES ('". $descricao ."', ". $post .", ". $cod_usuario .", '". $tipo ."', now())"; // echo $sql; exit; // imprime a query para testes. if ( mysql_query($sql) or die(mysql_error()) ) echo "resposta ok"; } Compartilhar este post Link para o post Compartilhar em outros sites
ebotega 2 Denunciar post Postado Junho 17, 2011 removi o utf8_decode e coloquei o exemplo que você mostrou, quando inseri a string "ação" no echo $sql imprimiu "INSERT INTO respostas (resposta, perguntas_cod_pergunta, cod_usuario, tipo_usuario, data_cadastro) VALUES ('ação', 6, 10, 'art', now())". Veja que aparece certo no insert, mas no banco fica "ação" e a estrutura do banco, no colltion, está utf8_general_ci. Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Junho 17, 2011 beleza, parece que agora no php está tudo certo. 1. Qual front-end está utilizando ? Nos posts anteriores você comentou estar usando MySQLWorkbench e PHPMyAdmin 2. Qual idioma nativo do sistema operacional (windows xp professional) ? 3. Poste a ddl da tabela. Utilize o MySQLWorkbench para exportar somente a estrutura. As tabelas que não possuírem uma definição, herdarão o padrão ou definição da base. Na estrutura deve vir algo do tipo ENGINE=InnoDB DEFAULT CHARSET=utf8 Note que o aconselhável é utilizar o tipo "utf8 - default collation" esse screen shot é da versão 5.2 do workbench conectado no mysql 5.5.8 Compartilhar este post Link para o post Compartilhar em outros sites
ebotega 2 Denunciar post Postado Junho 17, 2011 1. Qual front-end está utilizando ?Nos posts anteriores você comentou estar usando MySQLWorkbench e PHPMyAdmin são estes dois mesmos e, eventuamente, Toad for MySQL. Para desenvolvimento o dreamweaver e notepad++ 2. Qual idioma nativo do sistema operacional (windows xp professional) ? português. Sobre o collation do banco, consultando no MySQLWorkbench aparece com default_collation também. Algumas versões pra gente ter uma ideia... Estou usando o XAMPP: 1.7.4 PHP: 5.3.5 phpMyAdmin: 3.3.9 Estanho que entrei na index do xampp para ver a versão e na aparecem caracteres "estranhos", acho que porque mudei o padrão do banco de latin1 para utf8... Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Junho 18, 2011 no post #22 Veja que aparece certo no insert, mas no banco fica "ação" e a estrutura do banco, no colltion, está utf8_general_ci. quando você diz que "mas no banco fica "ação"", a quê se refere ? qual meio está utilizando para ler os dados do banco ? é por meio do php ou de algum mysql front-end? Compartilhar este post Link para o post Compartilhar em outros sites
ebotega 2 Denunciar post Postado Junho 18, 2011 Se eu visualizar essa informação no banco via phpmyadmin ou select com mysql-toad aparece "ação". Se eu der um simples echo na variável que recebe essa informação no banco, imprime certo: "ação". A situação acima é quando eu não tenho utf8_decode no insert e estou dando o echo sem htmlentities. Se eu colocar utf8_decode no insert, a palavra "ação" vai com acento no banco, daí tenho que usar htmlentities para imprimir certo. Li recentemente que utf8_decode serve para decodificar um valor utf8 e convertê-lo para iso-8859-1. Já que, quando uso utf8_decode vai certo para o banco e isso codificaria a minha palavra "ação" de utf8 para iso-8859-1, é como se o banco ainda estivesse no formato latin1, mesmo não sendo o que me apresenta no phpmyadmin... :huh: Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Junho 19, 2011 1. utilize o mysqlworkbench para ver como ele apresenta os caracteres 2. como está o código php que faz conexão ao banco? mysql_connect() mysql_select_db() pode ser que tenha algo nesse meio ou em algum ponto do script que esteja causando o conflito.. isso é comum acontecer quando faz testes de depuração e esquece de remover linhas de testes 3. as configurações do mysql são as definições padrão da instalação ? 4. na página php que exibe os dados do banco, como está a configuração do charset ? lembre-se que tanto para inserir quanto para exibir, todos os arquivos devem estar com o mesmo charset. 5. voltando ao post #23, faltou a questão 3 Poste a ddl da tabela.Utilize o MySQLWorkbench para exportar somente a estrutura. Compartilhar este post Link para o post Compartilhar em outros sites