Parece que algo está errado com a codificação de caracteres. Algumas coisas que você pode tentar:
Já tentou definir o conjunto de caracteres da sua saída HTML explicitamente para corresponder ao conjunto de caracteres do seu banco de dados? Por exemplo, se seu banco de dados tiver UTF-8, tente declará-lo em uma meta tag dentro de <head>
tags:
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
Para o HTML 5, é muito mais curto:
<meta charset="UTF-8" />
Para o mysql, você pode descobrir qual conjunto de caracteres seu banco de dados está usando executando as seguintes instruções:
USE <databasename>;
SHOW VARIABLES LIKE 'character_set_database';
Outro DBMS terá declarações semelhantes.
No entanto, eu não acho que você precise repetir isso para cada página / site (mas certamente não faz mal se você o fizer): É claro que é mais fácil alterar o conjunto de caracteres padrão do Apache, ajustando a diretiva AddDefaultCharset no arquivo httpd.conf ou apache2.conf ou onde quer que sua configuração principal esteja localizada:
# AddDefaultCharset Somethingelse
AddDefaultCharset UTF-8
Recarregue o apache depois.