Problema com a codificação ?

The Dealer

Power Member
Guardo (por exemplo) a seguinte tabela deste modo:

Código:
CREATE TABLE IF NOT EXISTS Tabela ( 
  child int(11) NOT NULL auto_increment, 
  nome char(60), 
)ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=11 ;
E quando faço um print em PHP onde vai buscar o conteudo do campo nome (depois do mysql_fetch_assoc) aparece-me assim:

Mestrado em Sistemas de Informa��o

Portanto tudo o que é cedilhas e acentos, vai ao ar. Qual será o problema?
 
Estás a utilizar na página o charset iso-8859-1?

Código:
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
 
no ficheiro .php deves ter o encoding como UTF-8, muda para ANSI ( se não souberes como fazer isso, pegas no notepad++ e vais ao menu "formatar" e metes "converter para ANSI" )

vê também o charset da página caso tenhas
 
Aliás, não ficou resolvido, porque agora, alguns acentos ficaram bem, mas outros não. Em muitos sítios tenho assim:

Cursos de 1º Ciclo.

Já não me aparece aquele género de ponto de interrogação, mas agora noutros sitios é assim:rolleyes:
 
Introduziste essas informações via backoffice? Se vires directamente os campos na BD estão escritos de forma correcta ou também tem esses caracteres 'estranhos'?
 
Introduziste essas informações via backoffice? Se vires directamente os campos na BD estão escritos de forma correcta ou também tem esses caracteres 'estranhos'?

O que está na BD aparece forma correcto. A questão é, o que agora ficou mal, não é o que provêm da BD, são simples echo's. Como se de alguma forma existisse um conflito entre as duas meta http.
 
Já me aconteceu coisas do género.. Acontece que esse conteúdo foi escrito com o outro tipo de codificação e agora aparece errado.. Às vezes, só o facto de reescrever novamente os textos resolve o problema.. caso não aconteça..

Se não for muito texto podes sempre utilizar a função utf8_encode / utf8_decode.. do género.. echo utf8_encode('text');

Ou experimenta colocar a seguinte linha no inicio da página:
Código:
<?php header("Content-Type: text/html;  charset=ISO-8859-1",true); ?>

Espero que ajude em alguma coisa.. ;)
 
Já me aconteceu coisas do género.. Acontece que esse conteúdo foi escrito com o outro tipo de codificação e agora aparece errado.. Às vezes, só o facto de reescrever novamente os textos resolve o problema.. caso não aconteça..

Se não for muito texto podes sempre utilizar a função utf8_encode / utf8_decode.. do género.. echo utf8_encode('text');

Ou experimenta colocar a seguinte linha no inicio da página:
Código:
<?php header("Content-Type: text/html;  charset=ISO-8859-1",true); ?>
Espero que ajude em alguma coisa.. ;)

Não gosto de ser do contra mas isso nao funciona..
 
eu na base de dados uso sempre o charset e colation = utf8_general_ci ou ut8_bin e nunca me deu problemas desses
 
É tão simples quanto isto. Tenho a meta tag a charset=ISO-8859-1" /> e no php.ini tenho:
; PHP's built-in default is text/html
default_mimetype = "text/html"
default_charset = "iso-8859-1"

E o html com acentos e cedilhas aparece errado, e os echo's também. Mas o que vem da BD está correcto.. Já não sei que fazer...
 
Back
Topo