Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

weikan_1991

[dúvida] BANCO NÃO RETORNA DADOS COM ACENTUAÇÃO

Recommended Posts

OLÁ.

 

A EMPRESA ONDE EU TRABALHO UTILIZA O BANCO DE DADOS EM ACCESS. EU PRECISO EXIBIR UMA LISTA COM OS NOMES QUE ESTÃO CADASTRADOS NESSE BANCO. EU CONECTO AO BANCO, FAÇO UMA BUSCA PELOS NOMES QUE EU QUERO E ELES SÃO RETORNADOS EM UMA TABLE. ACONTECE QUE OS NOMES QUE POSSUEM ACENTO (POR EXEMPLO: JOÃO GONÇALVES) NÃO RETORNAM COMO DEVERIAM (NESSE EXEMPLO QUE MENCIONEI, RETORNA JO?A GON?ALVES). MINHA PÁGINA NO PHP ESTÁ EM UTF-8 E SEI QUE SE ESSE PROBLEMA FOSSE NO MYSQL EU PODERIA SIMPLESMENTE MUDAR A TABELA PARA "UTF-8" OU "LATIN1" QUE ELA JÁ ME RETORNARIA DO JEITO QUE EU QUERO. PORÉM EM ACCESS NÃO SEI COMO FAZER ISSO (OU SE É POSSÍVEL FAZER).

 

SEGUE O CÓDIGO:

<html xmlns="http://www.w3.org/1999/xhtml" lang="pt-br" xml:lang="pt-br">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Aniversariantes</title>
</head>
<style>
.aniver_table{
	padding:3;
	width:500;
	height:500;
	border:thin dotted;
	background-color:#CCC;
	border-radius:3px;;
	}
.aniver_td{
	border:thin dotted;
	border-radius:3px;
	background-color:#FFF;
	}
.aniver_td:hover{
	background-color:#FFC;
	}
.aniver_linha{
	font-family:"Trebuchet MS", Arial, Helvetica, sans-serif;
	font-size:12px;
	color:#666;
	}
.back a{
	display:block;
	width:90;
	height:25;
	background-image:url(imagens/back.png);
	}
.back a:hover{
	background-image:url(imagens/back_hover.png);
	}
.meio{
	width:650;
	margin: 0 auto;
	background-color:#FFF;
	border:thin dotted;
	border-radius:3px;
	padding:20;
	}
.topo{
	margin: 0 auto;
	}
.rod{
	font-family:"Trebuchet MS", Arial, Helvetica, sans-serif;
	font-size:10px;
	color:#999;
	}
</style>
<body>

	<?php
	
	$mes = $_POST['mes'];
	$conexao = odbc_connect("pessoal","","") or die (odbc_error());
	$seleciona = odbc_exec($conexao, "SELECT * FROM Cadastro WHERE month(Datanascimento) = '$mes'") or die(odbc_error());
	echo "<div class='topo'>";
	echo "<table width='1420' height='250' align='center'>";
	echo "<tr><td align='center'><a href='index.php'><img src='imagens/logohpm.jpg' width='1420' height='250'/></a></td></tr>";
	echo "<tr><td align='center'><img src='imagens/quebra.jpg' width='1420' height='1'/></td></tr>";
	echo "</table>";
	echo "</div>";
	if($mes != '0'){
	echo "<div class='meio'>";
	echo "<table class='aniver_table' align='center'>";
	echo "<tr><td class='aniver_td' align='center'><p class='aniver_linha'><b>Nome:</b></p></td><td class='aniver_td' align='center'><p class='aniver_linha'><b>Data:</b></p></td></tr>";
	while ($lista = odbc_fetch_array($seleciona)){
		echo "<tr><td align='center' class='aniver_td'><p class='aniver_linha'>".$lista["Nome"]."</p></td><td align='center' class='aniver_td'><p class='aniver_linha'>".$lista["Datanascimento"]."</p></td></tr>";
		}
	}else{
		echo "<div class='meio'>";
		echo "<table class='aniver_table' align='center'>";
		echo "<tr><td class='aniver_td' align='center'><p class='aniver_linha'>Escolha o mês corretamente!</p></td></tr>";
		}
	echo "<tr><td colspan='2' align='center'><p class='back'><a href='voltar.php'></a></p></td></tr>";
	echo "</table>";
	echo "</div>";
	echo "<div class='rodape'>";
	echo "<table width='1420' height='20' align='center'>";
	echo "<tr><td align='center'><img src='imagens/quebra.jpg' width='1420' height='1'/></td></tr>";
	echo "<tr><td align='center'><p class='rod'>Sistema Ajuda</p></td></tr>";
	echo "<tr><td align='center'><p class='rod'>Setor de TI - HPM</p></td></tr>";
	echo "</table>";
	echo "</div>";
	?>
</body>
</html>

ALGUMA IDEIA?

 

OBRIGADO PELA ATENÇÃO.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em primeiro lugar NÃO ESCREVA DESTA MANEIRA, é totalmente desagradável isto.

 

Se o problema se der apenas pela codificação, use o utf8_encode para alterar a codificação da string recebida do banco.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não podes falar por todo mundo. Se TE desagrada quando alguém escreve em caixa alta, você pode apenas sugerir que a pessoa não escreva mais em caixa alta mensagens destinadas a você. Se te deixa desconfortável, não responda o tópico. Comentário totalmente desnecessário. Aqui na empresa, por exemplo, é regra escrever em caixa alta sempre. Se eu enviasse um texto desta maneira como estou escrevendo agora, me mandariam um aviso dizendo "ESCREVA EM CAIXA ALTA". Escrever em caixa alta é uma opção de quem escreve e quem lê não pode "ordenar" que o outro nunca mais faça isso.

 

Quanto ao meu problema, foi resolvido. Utilizando o "utf8_encode" ele me retorna a acentuação normalmente. Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não podes falar por todo mundo. Se TE desagrada quando alguém escreve em caixa alta, você pode apenas sugerir que a pessoa não escreva mais em caixa alta mensagens destinadas a você. Se te deixa desconfortável, não responda o tópico. Comentário totalmente desnecessário. Aqui na empresa, por exemplo, é regra escrever em caixa alta sempre. Se eu enviasse um texto desta maneira como estou escrevendo agora, me mandariam um aviso dizendo "ESCREVA EM CAIXA ALTA". Escrever em caixa alta é uma opção de quem escreve e quem lê não pode "ordenar" que o outro nunca mais faça isso.

Isto é uma regra de etiqueta na internet, a qual nós seguimos aqui. Contudo você tem razão, não posso ordenar que você não escreva, mas se o tópico estiver em desacordo com as regras, ele pode ser alterado para ficar em acordo ou simplesmente removido.

Compartilhar este post


Link para o post
Compartilhar em outros sites

DA UM DESCONTO @ESERRA O CARA USOU O BOTÃO 'Código' JÁ É UMA PUTA CONQUISTA ...

:P :P :P

 

Brincadeira a parte, recomendo a leitura

http://wbruno.com.br/ajax/problemas-acentuacao-ajax-como-resolver/

 

As vezes pode ser o coding do arquivo mesmo.

 

No seu arquivo de conexão com o banco você pode forçar tmb para a saida ser UTF:

 

 

PDO:

$pdo->exec("set names utf8");

Mysqli:

$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}
$mysqli->query("set names utf8");

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.