Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #57 da revista programar. Faz já o download aqui!

foxymop

Novo problema com acentos e cedilhas

Mensagens Recomendadas

foxymop    0
foxymop

Boas,

tenho uma pagina que carrega uma tabela com moradas que está numa bd mysql.

Tenho a tabela em utf general

tenho charset iso e utf

já testei com mysql_query("SET NAMES UTF8");

a tabela continua a aparecer com "?" em vez dos acentos e cedilhas... ja nao sei o que fazer mais..

ideias?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
jorgepinho    0
jorgepinho

Boas,

Não só a tabela, mas cada campo tem o seu encoding... verifica isso.

Depois, o ficheiro (php ???) propriamente dito, tem de estar no mesmo encoding, e isso tem de estar devidamente indicado na tag <meta>, isto porque o browser NÃO detecta o encoding do ficheiro, tem de estar lá escrito. O mesmo aplica-se aos editores de texto, dreamweaver, eles tentam fazer um auto-detect que funciona *só* em alguns casos.

Podes verificar o encoding do ficheiro num editor de texto avançado (notepad++, crimson editor, etc...)

Eu sempre tive menos problema a usar o "Latim1" (ou "iso-8859-1") do que os utf8...

alguns editores referem-se aos "iso-8859-X" (LatimXPTO) como "ANSI"

Se tudo estiver nos conformes, não vais precisar de usar: mysql_query("SET NAMES UTF8");

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
foxymop    0
foxymop

Os campos da bd estão em utf8 general ci tambem.

Tenho no header

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>

já testei com

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

nada -.-

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
jorgepinho    0
jorgepinho

Leste o meu post ?

O tag <meta> é para informar apenas... tem de *corresponder* ao encoding do ficheiro... senão o browser vai ler uma coisa errada e daí os "?"

Experimenta também mudar manualmente o encoding do browser para veres as diferenças...

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
foxymop    0
foxymop

jorgepinho, li, vou reler, pois posso ter percebido mal.

Yoda, também já tinha tentado assim e nada.

Já usei o notepad ++ para testar com varios tipos de encoding. Não me consigo livrar disto...

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
brunoais    69
brunoais

verifica o encoding na tabela SQL.

Tem que ser utf-8 e, se já tinhas dados quando passaste para utf-8, tens que regravar os dados na tabela.

No notepad++ tem que ser o encoding UTF-8 without BOM.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
yoda    139
yoda

Qual é o encoding dos campos que estás a tentar usar? É o utf8_general_ci? Já experimentas-te inserir novos campos e imprimir o resultado?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
foxymop    0
foxymop

Qual é o encoding dos campos que estás a tentar usar? É o utf8_general_ci? Já experimentas-te inserir novos campos e imprimir o resultado?

Sim, é.

já, tudo na mesma...

tou a ver que este é daqueles que faço a bd toda de novo e fica a funcionar por obra e graça do espirito santo...

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
falco    33
falco

Se tiveres a carregar a BD com campos dessa forma, é isso que a BD vai guardar...

Depois, o ficheiro (php ???) propriamente dito, tem de estar no mesmo encoding, e isso tem de estar devidamente indicado na tag <meta>, isto porque o browser NÃO detecta o encoding do ficheiro, tem de estar lá escrito. O mesmo aplica-se aos editores de texto, dreamweaver, eles tentam fazer um auto-detect que funciona *só* em alguns casos.

Podes verificar o encoding do ficheiro num editor de texto avançado (notepad++, crimson editor, etc...)

O enconding em que está o teu código, vai ser pouco relevante se as strings não estiverem escritas no código, mas sim guardadas em variáveis... Se calhar mais importante é o encoding que está no determinado no markup do documento, porque isso vai determinar o que é que o browser poderá usar (se o browser não tiver configurado para usar algum encoding em especifico em vez do que tiver determinado no documento). Para além disso quando falamos em unicode, também é importante a forma como processamos as strings... A maior parte das linguagens, não lida muito bem com unicode ( http://www.portugal-a-programar.pt/index.php?showtopic=47613 ), pelo menos sem recorrer a bibliotecas externas...

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
foxymop    0
foxymop

Obrigado pela ajuda.neste momento nao tenho acesso ao codigo, mas logo ponho aqui. É bastante simples. Uma tabela que vai buscar dados mais nada. Logo ponho aqui.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
foxymop    0
foxymop

De volta.

Parece-me que o problema é mesmo quando importo o scv. É que sempre que importo o csv, os dados na BD ficam logo marados. Tenho tudo em utf8... será que algum dos parametros não pode ser utf? Entretanto descobri que um dos parâmetros estava em sweden, troquei para general e agora tudo o que é pontos e Ç desaparecem mesmo na BD...

por exemplo esta morada "PRAÇA TEÓFILO BRAGA", na BD a ser vista pelo phpmyadmin aparece só "pra"

Ha outra coisa que deve ser importante que é o facto da BD ter abreviaturas, ou seja, pontos. tipo "R. António qualquer coisa"

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
yoda    139
yoda

Resolvido. O encoding pelo notepad++ era o mesmo que nada. Fiz pelo dreamweaver abrindo o csv lá e já está a funcionar bem.

Qual era o encoding que estavas a usar no Notepad++?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
brunoais    69
brunoais

Se calhar o encoding q tens por defeito não é utf-8 W/O BOM. O csv está com qual? ANSI? Com o notepad++ podes alterar para utf-8 W/O BOM facilmente.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita a nossa Política de Privacidade