Texto com caracteres estranhos - MySQL - Fórum Script Brasil
Texto com caracteres estranhos
Asked by wgc,
Bem... estou com o seguinte problema. Estou tentando criar um painel de usuário, e eu quero que neste painel contenha todas as informações dos usuários cadastrados no sistema (Ex.: Nome de saudação; Dados de cadastro; Alteração de senha entre outros...). Pois bem, até ai estava tudo indo bem, testei o login e senha, testei o painel e testei tudo. Esta tudo funcionando corretamente, mas o problema é que, quando eu cadastro as informações no banco de dados eu consigo inserir todas as informações e textos com suas devidas acentuações. Mas... quando as informações são repassadas ao usuário fica aparecendo caracteres estranhos no lugar das acentuações.
Ex.: se tiver escrito "Coração" aparece "Cora��o".
Assim para todo o conteúdo do banco que esteja com acento. (lembrando que lá no banco de dados está com acento)
Já procurei em diversos lugares na internet, e em alguns deles falavam para eu alterar o collation de "latin1" para "utf8". Fiz tudo o que falaram pra eu fazer e nada deu certo, inclusive na pagina HTML.
Por favor, estou precisando só disso para eu terminar meu painel. Por tanto, peço a ajuda dos caros colegas.
Olá wgc !
Cara, sou iniciante no MySQL, mas tive um problema parecido com o seu.
Qual o ENGINE do seu Banco ? e de sua Tabela ?
Qual o CHARSET e COLLATE ? os dos campos são o mesmo para todos ?
Pude notar que quando criamos uma Tabela e não informamos o CHARSET e a COLLATE, eles são definidos com o padrão do Banco...e o mesmo vale para criação de campos, ou seja, se sua Tabela tiver o "CHARSET = latin1" e "COLLATE = latin1_Bin", e você cria um campo e não informa nem o CHARSET nem o COLLATE, então automaticamente eles são definidos com o padrão da Tabela, ou seja, o campo que você criou terá o CHARSET = latin1 e a COLLATE = latin1_bin (mesmo da tabela).
Quando crio meus Bancos, sempre configuro assim:
CREATE DATABASE IF NOT EXISTS base_teste
DEFAULT COLLATE = latin1_swedish_ci;
E as Tabelas assim:
CREATE TABLE table_teste (
Controle INT(4) NOT NULL AUTO_INCREMENT,
ID_Clientes CHAR(30) NULL DEFAULT NULL COLLATE latin1_swedish_ci,
Cliente VARCHAR(100) NULL DEFAULT NULL COLLATE latin1_swedish_ci,
Computador VARCHAR(30) NULL DEFAULT NULL COLLATE latin1_swedish_ci,
PRIMARY KEY (Controle)
DEFAULT CHARSET= latin1
Mude o CHARSET e a COLLATE de sua tabela e dos campos da tabela e veja se funciona...comigo funcionou !