Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Salve galera, primeiro bom dia.
Estou com um problema que me assombra aqui com encode, estava desenvolvendo um sistema e por isso acabei deixando de lado e reescrevendo ele até porque ele era procedural e eu meio que orientei ele dessa vez, mas o problema com encode contia e tentando ver novamente se eu fiz algo de errado fiz uma pagina muito simples pra ver, mas vejam o que aconteceu...
/applications/core/interface/imageproxy/imageproxy.php?img=http://i62.tinypic.com/6qf75s.png&key=1ddd8f0ceadeeb733a24e287d9445ecd42eff4fdda5e3a5dd2c00f985d56d3b7" alt="6qf75s.png" />
O cógido é o seguinte: (Sim já setei o documento como utf8 sem BOM)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Pagina</title>
</head>
<body>
<form method="POST" action="">
vái dãr çerto: <input type="text" name="texto" /><input type="submit" value="enviar"/><br><br>
</form>
<?php
# CONEXAO
try{
#$n = new PDO("mysql:host=localhost;dbname=bancoutf","root","");
$n->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
}catch(PDOException $e){ echo $e;}
# INSERT
if($_SERVER['REQUEST_METHOD'] == 'POST'){
try{
$i = $n->prepare('INSERT INTO utf VALUES("'.htmlentities($_POST['texto']).'")');
$i->execute();
}catch(Exception $e){echo $e;}
}
# EXIBIÇÂO
try{
$l = $n->prepare('SELECT * FROM utf');
$l->execute();
foreach($l->fetchAll(PDO::FETCH_ASSOC) as $ln){
echo $ln['texto'].'<br>';
}
}catch(PDOException $e){echo $e;}
?>
</body>
</html>Estranho que sempre fiz isso normalmente e agora começou essa palhaçada...
Pois é. Vai ver que foi alguma atualização que o servidor fez, sei lá.
Por exemplo eu sempre usei o include com o endereço do site e de uma hora para outra eles pararam de funcionar...
:)
Olá! Na hora que você ir gravar no banco de dados adiciona essa função para cada valor gravado:
<?php
$nome = utf8_decode($_POST['nome']); // UTF8_DECODE($VALOR);
// Caso continue dando errado tente:
$nome = utf8_encode($_POST['nome']); // UTF8_ENCODE($VALOR);
?>
Boa Sorte ;)
E æ man! blz!
Já apanhei muito de encode! e resolvi do seguinte jeito:
try{
#$n = new PDO("mysql:host=localhost;dbname=bancoutf","root","");
$n->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$n->query('SET NAMES UTF8');
}catch(PDOException $e){ echo $e;} ...
Percebeu?... eu inseri a linha:
$n->query('SET NAMES UTF8');
E continue usando no html:
<meta charset="utf-8">
Tenta aí e vê se da certo!...Abraço!
Trabalha, toda a informação em utf-8. Como o VIC3NT falou, mete:
No teu ficheiro html/php
<meta charset="utf-8">
Após a criação da conexão ao teu banco de dados
$n->query('SET NAMES UTF8');
Guarda todos os teus arquivos, HTML, css, PHP com codificação UTF-8 Sem BOM (sequência de bytes (EF BB BF) )
Aí tudo funciona direito o que te permite até criares um site em Mandarim ou árabe sem teres problemas com codificação.
Tem que setar na conexão do banco que é UTF8
Olá!
Eu no meu caso, só consegui resolver isso com o charset iso 8859-1 no html
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
No banco de dados eu trocaria o utf-8 pelo Latin Europeu (general eu acho)
Funciona, mas a desvantagem é se vc for editar o texto no modo view do dreamheaver. No texto digitado aparentemente está tudo certo, mas no código surge as várias falhas de acentuação.
Agora se você digita tudo direto pelo código. acho que não vai dar nenhum problema :)