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!
Estou tendo um problema de acentuação.
O banco de dados esta com COLLATION SQL_Latin1_General_CP1_CI_AS para poder ignorar letras maiúsculas e acentos, mas quando exibo os dados do banco vem assim: Ace Data Inform�tica Ltda
Não sei mais o que tentar...
Lembrando que estou utilizando o Codeigniter...
Valew
Ricardo Saraiva!
Em ambas as codificações (página e conexão com o banco de dados) estão com UTF-8 e mesmo assim está dando erro de caracteres.
Já tentei até ISO-8859-1 e também não resolveu...
Bom no caso as funções funções utf8_encode e utf8_decode podem resolver o seu problema : utf8_encode e utf8_decode.
E no caso defina a codificão de caractere de sua pagina para UTF-8:
<!-- HTML-5 -->
<meta charset="UTF-8">
<!-- HTML 4 -->
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
Não resolveu também com as funções utf8_encode e utf8_decode... não sei mais o que colocar
Outra alternativa defina o caratere como UTF-8 no header com o próprio php e tambem na conexão com o banco de dados.
header('Content-Type: text/html; charset=utf-8');//Define o caractere como utf-8
$this->conn = new mysqli('host', 'user', 'pass', 'database');//conexão com o banco de dados
$this->conn->set_charset('utf8');//define a codificação que o banco de dados ira trazer as informações
Tem este artigo excelente que fala sobre problemas com caracteres:
http://rubsphp.blogspot.com.br/2011/07/problemas-com-charset-nunca-mais.html
No codeigniter ele já faz isso:
$db['default']['char_set'] = "utf8";
$db['default']['dbcollat'] = "utf8_general_ci";
\o/ consegui corrigir, valew pela ajuda...
>
No codeigniter ele já faz isso:
$db['default']['char_set'] = "utf8";
$db['default']['dbcollat'] = "utf8_general_ci";
\o/ consegui corrigir, valew pela ajuda...
Bom dia!
Qual foi a solução?
Eu consegui resolver usando utf8_encode.
Exemplo:
echo utf8_encode($val['OBSCLI']));
onde $val['OBSCLI'] é o resultado da minha consulta no banco.
Espero ter ajudado pois eu quebrei a cabeça muito tempo.
A resposta correta é salvar tudo na mesma codificação.
Quando estamos falando de PHP, deve-se cuidar a codificação em 4 lugares:
- Codificação do arquivo;
- Codificação do HTML (header, etc...);
- Codificação da conexão com o banco de dados;
- Codificação das tabelas/registros do banco de dados.
Não importa qual você escolha (UTF-8, ISO-8859-1, etc...), apenas importa que todos **sejam o mesmo**. O link abaixo (que já foi mencionado) explica exatamente aonde deve-se preocupar: [http://rubsphp.blogspot.com.br/2011/07/problemas-com-charset-nunca-mais.html](http://rubsphp.blogspot.com.br/2011/07/problemas-com-charset-nunca-mais.html)
Por convenção, utiliza-se UTF-8 como padrão.
Utilizar as funções de codificação de texto (utf8_decode, utf8_encode, MB String, etc..) é somente em casos aonde há incompatibilidade com a configuração utilizada pelo banco de dados e o drive fornecido para o PHP. Problema o qual era bem comum entre servidores linux e bancos de dados SQL Servers.
No mais, para novas dúvidas, deve-se abrir um novo tópico.
Depende de com esta configurado a codificação de caracteres de sua pagina.
No caso amigo para evitar este tipo de problema configure tudo com a mesma codificação de caractere, te aconselho a usar UTF-8 em tudo.