null2007 1 Denunciar post Postado Novembro 6, 2009 Olá amigos, Ao inserir os dados de um campo(comentário) no BD, está inserindo dessa forma: Educação(Educação) Estou utilizando o Collation do BD como latin1_swedish_ci(Me disseram que poderia ser isto)... Como posso resolver? Abraço! Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Novembro 6, 2009 Como está a meta tag da página ? Eu recomendo usar utf-8 Vou mover para o fórum de php, mas dê uma olhada nesse tópico: http://forum.imasters.com.br/index.php?/topic/340459-php-html-mysql-charset-encoding/ Tópico Movido: Webstandards: CSS / XML / XHTML / HTML http://forum.imasters.com.br/public/style_emoticons/default/seta.gif PHP Compartilhar este post Link para o post Compartilhar em outros sites
Alan Alisson 1 Denunciar post Postado Novembro 6, 2009 Olá amigo! eu tive o mesmo problema que você, no início assim como muitos, Bom aqui no meu eu resolvi assim: coloque o collation do DB como "utf8_unicode_ci" e nas paginas do site coloque assim entre o <head> e </head>: <meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type" /> veja se resolve, tem uma obs a mais minha no tópico PHP + SQL, olha lá. Abraços. Compartilhar este post Link para o post Compartilhar em outros sites
null2007 1 Denunciar post Postado Novembro 8, 2009 Alan, não resolveu amigo. Veja bem, ao efetuar um insert via SQL, os acentos ficam corretos no BD. E quando estão corretos, também carregam corretamente na page. Porém, eu creio que é algo no insert e update, pois é só quando eu egetuo um cad pelo site que no BD ficam os caracteres estranhos(Ex: é fica: é). Vou postar minha classe aqui para ver se alguém consegue me ajudar: Insert: public final function insertSQL($VARS, $tabela){ foreach($VARS as $id=>$val){ if($val!=''){ $cols.= "$id, "; $valor.= "'$val', "; } } $cols = trim($cols); $valor = trim($valor); $cols = substr($cols, 0, strlen($cols)-1); $valor = substr($valor, 0, strlen($valor)-1); if($this->query("INSERT INTO $tabela($cols) VALUES($valor)")){ return true; } else { return false; } } Update: public final function updateSQL($VARS, $tabela, $primary){ foreach($VARS as $id=>$val){ if($id!='') $valor.= "$id='$val', "; } $valor = trim($valor); $valor = substr($valor, 0, strlen($valor)-1); if($this->query("UPDATE $tabela SET $valor WHERE $primary= '$VARS[$primary]'") != 0){ return true; } else { return false; } } Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Novembro 9, 2009 Não é um problema na classe. É um problema na codificação do arquivo que contém as classes. A codificação do seu editor de texto deve ser o mesmo da codificação das meta-tags, que deve ser o mesmo do seu BD. Senão vai dar problema. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
null2007 1 Denunciar post Postado Novembro 9, 2009 Não é um problema na classe. É um problema na codificação do arquivo que contém as classes. A codificação do seu editor de texto deve ser o mesmo da codificação das meta-tags, que deve ser o mesmo do seu BD. Senão vai dar problema. Carlos Eduardo Ok Carlos, entendi amigo. Só ñ sei aonde tratar isto, você poderia me dar um exemplo de como resolver o problem? Obrigado! Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Novembro 9, 2009 Qual o seu editor de texto? Dreamweaver? Eclipse? Notepad++? NetBeans? Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
null2007 1 Denunciar post Postado Novembro 9, 2009 Qual o seu editor de texto? Dreamweaver? Eclipse? Notepad++? NetBeans? Carlos Eduardo Eu uso o: phpDesigner 2008 Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Novembro 9, 2009 Cara, este eu não conheço e nem tem versão pra Linux, então não vou conseguir te ajudar. Vamos esperar alguém que conheça ou que possa testar pra poder te ajudar. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
null2007 1 Denunciar post Postado Novembro 9, 2009 Cara, este eu não conheço e nem tem versão pra Linux, então não vou conseguir te ajudar. Vamos esperar alguém que conheça ou que possa testar pra poder te ajudar. Carlos Eduardo Carlos, Que tipo de teste você precisa fazer? Eu tenho o Notepad++ instalado aqui. Uso o phpDesigner só pq foi o que me adaptei melhor, porém eu digito os códigos tudo manualmente. Então acredito que posso estar fazendo o teste que você solicitar pelo Notepad++. É só me passar os passos a seguir. Obrigado! Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Novembro 9, 2009 Antes de postar, use a busca. Só nos últimos 3 ou 4 dias houve três tópicos sobre isso. http://forum.imasters.com.br/index.php?app=core&module=search§ion=search&do=quick_search&search_app=core&fromsearch=1 Compartilhar este post Link para o post Compartilhar em outros sites
Fernando Nito 1 Denunciar post Postado Novembro 9, 2009 É simples. Faça os seguintes passos: 1 - Deixe o meta da página assim: <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 2 - Salve-o no bloco de notas com a codificação ANSI. 3 - Antes de enviar o banco de dados, coloque ele numa variável mais ou menos assim: <?php $nomedesuavariavel2 = utf8_decode($variavelasercorrigida); ?> Depois é só mandar o INSERT TO para enviar ao BD. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Novembro 9, 2009 recomendo utf-8 ele está aí para ser usado. Tem a intenção de acabar com esses problemas, já que é suportado por diversos idiomas Tem sido a codificação adotada pela maioria das aplicações, tanto WEB quanto desktop UTF-8 (8-bit UCS/Unicode Transformation Format) is a variable-length character encoding for Unicode. It is able to represent any character in the Unicode standard, yet is backwards compatible with ASCII. For these reasons, it is steadily becoming the preferred encoding for e-mail, web pages,[1][2] and other places where characters are stored or streamed. Fonte: http://en.wikipedia.org/wiki/Utf8 Compartilhar este post Link para o post Compartilhar em outros sites
null2007 1 Denunciar post Postado Novembro 9, 2009 É simples. Faça os seguintes passos: 1 - Deixe o meta da página assim: <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 2 - Salve-o no bloco de notas com a codificação ANSI. 3 - Antes de enviar o banco de dados, coloque ele numa variável mais ou menos assim: <?php $nomedesuavariavel2 = utf8_decode($variavelasercorrigida); ?> Depois é só mandar o INSERT TO para enviar ao BD. Fernando Nito, Deu certo meu amigo, usei isto: <?php$nomedesuavariavel2 = utf8_decode($variavelasercorrigida);?> Ou seja, para alguém que tiver o mesmo problema, use o utf8_decode() para tratar a variável ao mandar p/ o BD. Tanto com a meta: <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> como a: <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> retornou corretamente. Para os amigos que tiverem algum problema com acentos, segue todos os detalhes da situação que procedia: Efetuei um cadastro, logo fui edita-lo e então veio o problema, os acentos estavam retornando com caracteres estranhos(Ex: João estava retornando: João). Então efetuei um select no BD e percebi que no BD estava assim: João. Fiz um teste fazendo um insert(joão) e no BD ficou correto, então na impressão tbm mostrava corretamente. Logo entendi que o problema estava no momento do insert pela page. Resolvendo: Tratamento da variavel com: utf8_decode() Dica do nosso amigo: Fernando Nito Grande abraço!! Compartilhar este post Link para o post Compartilhar em outros sites
Fernando Nito 1 Denunciar post Postado Novembro 9, 2009 Tanto com a meta: <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> como a: <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> retornou corretamente. Eu sempre deixei charset=iso-8859-1, nunca tinha parado pra testar com charset=utf-8. Bom saber disso http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites