vila3 Posted March 2, 2014 at 06:27 PM Report #547278 Posted March 2, 2014 at 06:27 PM (edited) Olá pessoal Estou com um problema no meu site em realção ao charset (desde já peço desculpa se não for o local correto para fazer esta dúvida) o meu charset está defenido como utf-8 mas numa tabela os resultados que tenham acentos ou caracteres especiais aparece isto � por exemplo, tenho um nome na tabela "João Maria" mas aparece "Jo�o Maria" mas se escrever o mesmo nome fora da tabela aparece normalmente "João Maria" este é o código da tabela: <table border="0.1" style="border:1px solid black; width: 100%; margin-bottom: 10px;"> <thead align="center" style="color: yellow; background-color: black;"> <th style="font-weight: bold; width:20%">Nome</th> <th style="font-weight: bold; width:20%">Prova</th> <th style="font-weight: bold; width:20%">Marca</th> <th style="font-weight: bold; width:20%">Local</th> <th style="font-weight: bold; width:20%">Data</th> </thead> <!--loop que esrcreve os dados na tabela--> <?php while($row = mysql_fetch_array($rs)) { ?> <tr style="color: black; background-color: yellow"> <td><?php echo $row["Nome"]; ?></td> <td><?php echo $row["Prova"]; ?></td> <td><?php echo $row["Marca"]; ?></td> <td><?php echo $row["Local"]; ?></td> <td><?php echo $row["Data"]; ?></td> </tr> <?php } ?> </table> se alguem me conseguir explicar o porquê e como resolver, agradecia Edited March 2, 2014 at 06:27 PM by vila3
bioshock Posted March 2, 2014 at 10:20 PM Report #547294 Posted March 2, 2014 at 10:20 PM Tantos tópicos já a falar do mesmo.. Tens de perceber se o problema está na escrita na base de dados (que parece que sim) ou na selecção. Portanto, no <head> podes começar por colocar <meta charset="utf-8" /> E depois dar uma vista de olhos em http://pt2.php.net/mysql-set-charset
vila3 Posted March 3, 2014 at 02:17 PM Author Report #547336 Posted March 3, 2014 at 02:17 PM tipo, eu ja tenho isso do <meta charset="utf-8" /> e funciona em toda a página exepto dentro da tabela mas se eu retirar isso do "<meta charset="utf-8" />" aparece tudo bem dentro da tabela mas fora da tabela passa a ficar tudo com erro
HappyHippyHippo Posted March 3, 2014 at 04:20 PM Report #547372 Posted March 3, 2014 at 04:20 PM (edited) se tens uma caixa preta com duas cordas, e ao puxar por uma ouves uma gato a gemer e se puxares a outra ouves um cão achas que o problema está na maneira como puxas a corda ? se te disseram para colocar a tag meta na página foi por uma razão muito clara : dizer ao browser que os dados serão para ser interpretados no formato utf8. disseram-te também que o problema deverá (muito provavelmente) estar na base de dados, seja no formato das tabelas ou na codificação a usar na ligação. no entanto existe outra muito comum : codificação dos teus ficheiros PHP que também deverão estar no formato utf8. Edited March 3, 2014 at 04:20 PM by HappyHippyHippo 1 Report IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
vila3 Posted March 3, 2014 at 04:46 PM Author Report #547383 Posted March 3, 2014 at 04:46 PM esta isso tudo, o problema é que se a tabela fica bem o resto fica mal, se o resto está bem a tabela fica mal no codigo php se puser "header('Content-Type: text/html; charset=utf-8');" não acontece nada, se puser "header('Content-Type: text/html; charset=iso-8859-1');" fica bem a tabela mas tudo fora dele fica mal e a base de dados esta toda em utf-8 tanto as tabelas como a db
HappyHippyHippo Posted March 3, 2014 at 04:47 PM Report #547385 Posted March 3, 2014 at 04:47 PM esta isso tudo, o problema ... confirma novamente, e se continuares a dizer que está tudo, confirma novamente. no codigo php se puser "header('Content-Type: text/html; charset=utf-8');" não acontece nada, se puser "header('Content-Type: text/html; charset=iso-8859-1');" fica bem a tabela mas tudo fora dele fica mal já te disseram para não mexer ai !!! mete utf8 e prontos !!! IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
vila3 Posted March 3, 2014 at 04:55 PM Author Report #547390 Posted March 3, 2014 at 04:55 PM ja pus, e não deu nada, está dificil de compreender? ja tentei de diferentes maneiras e nunca fica como devia eu percebo o que me disseram para fazer, mas eu ja fiz e não resultou
bioshock Posted March 3, 2014 at 05:12 PM Report #547393 Posted March 3, 2014 at 05:12 PM (edited) Para uma melhor percepção: 1. Na tabela, quando inseres os dados via código, é inserido com sucesso sem problemas de charset? 2. Se a resposta à pergunta 1 for Sim significa que o problema está no output do que vêm da base de dados para o ecrã do utilizador. 3. Se a resposta à pergunta 1 for Não significa que o problema está no input do que inseres na base de dados Em qualquer uma das situações, deves atribuir o charset no HTML (que pelos vistos já tens) bem como o charset no PHP antes da query, que ainda te vi a dizer que já o tinhas feito. E eu recomendei-te o seguinte link: http://pt2.php.net/mysql-set-charset Sets the default character set for the current connection. Por outras palavras.. $db = mysql_connect('localhost', 'root', etc..); mysql_set_charset('utf8', $db); mysql_query("etc.."); Mas ainda mais importante, no topo da documentação. Warning This extension is deprecated as of PHP 5.5.0, and will be removed in the future. Instead, the MySQLi or PDO_MySQLextension should be used. See also MySQL: choosing an API guide and related FAQ for more information. Alternatives to this function include: mysqli_set_charset() PDO: Add charset to the connection string, such as charset=utf8 Pelo que quando decidires enveredar pela extensão MySQLi ou PDO, o teu código transformar-se-à em: $db = new mysqli("localhost", "root", etc..); $db->set_charset("utf8"); Se mesmo assim continuar sem funcionar.. codificação dos teus ficheiros PHP que também deverão estar no formato utf8 Edited March 3, 2014 at 05:13 PM by bioshock
vila3 Posted March 3, 2014 at 10:03 PM Author Report #547446 Posted March 3, 2014 at 10:03 PM pronto, percebi o que disseste e fiz mas sem sucesso o que reparei foi que usando a iso-8859-1 o que está dentro da tabela fica conforme deve, mas o que está fora fica mal, enquanto se usar utf-8 o que está fora da tabela fica bem, mas o que está dentro fica mal. consegues saber o porque? eu não percebo. a base de dados, a tabela estão em utf-8
HappyHippyHippo Posted March 4, 2014 at 05:00 AM Report #547467 Posted March 4, 2014 at 05:00 AM o que reparei foi que usando a iso-8859-1 o que está dentro da tabela fica conforme deve, mas o que está fora fica mal, enquanto se usar utf-8 o que está fora da tabela fica bem, mas o que está dentro fica mal. consegues saber o porque? eu não percebo. já disseste isso três vezes, e que vou dizer novamente mas pela última vez : não toques na tag meta que diz para usar utf8 o problema é que estás sempre a bater na mesma tecla e não referências se já verificaste todas as soluções que te disseram, nomeadamente: codificação dos teus ficheiros PHP que também deverão estar no formato utf8. IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
bioshock Posted March 4, 2014 at 11:51 AM Report #547492 Posted March 4, 2014 at 11:51 AM Só mesmo por acaso, mostra-nos o teu código de inserção/selecção dos dados.
vila3 Posted March 8, 2014 at 12:22 PM Author Report #547898 Posted March 8, 2014 at 12:22 PM já consegui resolver o problema, obrigado pela ajuda 🙂 usei isto por baixo do código de conexão á base de dados e resolveu o problema: mysql_set_charset('UTF8', $conexao);
bioshock Posted March 8, 2014 at 02:11 PM Report #547901 Posted March 8, 2014 at 02:11 PM Deves estar a gozar connosco..
I-NOZex Posted March 8, 2014 at 03:18 PM Report #547903 Posted March 8, 2014 at 03:18 PM pensei o mesmo, ja á 5dias que a soluçao foi dada... B2R » Beat2Revolution v3.0b | Regista e divulga-nos beat2revolution.net
HappyHippyHippo Posted March 8, 2014 at 07:09 PM Report #547934 Posted March 8, 2014 at 07:09 PM (edited) pensei o mesmo, ja á 5dias que a soluçao foi dada... é a vida de quem anda por aqui ... este é um exemplo claro da razão que tenho deixado de responder a tópicos relacionados com desenvolvimento para a web. - primeira referência o problema deverá (muito provavelmente) estar na base de dados, seja no formato das tabelas ou na codificação a usar na ligação - segunda referência com código de como resolver : Por outras palavras ... $db = mysql_connect('localhost', 'root', etc..); mysql_set_charset('utf8', $db); mysql_query("etc.."); Edited March 8, 2014 at 07:39 PM by HappyHippyHippo IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now