1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Problemas de Encoding/codificação

Discussão em 'Web Development' iniciada por joaopj, 12 de Agosto de 2007. (Respostas: 15; Visualizações: 1189)

  1. joaopj

    joaopj Power Member

    Olá pessoal...

    Eu fiz um site todo ele em UTF8 (acho eu :S) e nele eu meti isto no início:

    Código:
    <?php header('Content-type: text/html; charset=UTF-8'); ?>
    e isto dentro da head:
    Código:
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
    Todas as páginas são xHTML 1.0 Transictional válidas.


    No entanto acontece o seguinte:

    Todas as páginas aparecem correctamente no browser (pelo menos para mim :S e até hoje ainda ninguém reclamou...) mas quando eu faço uma simulação de spiders (isto acontece com todos os sites que eu já usei até agora para fazer estas simulações, mas para exprimentarem eu recomendo este: http://tools.seobook.com/general/spider-test/ ), os caracteres que supostamente deviam ter acentos e tils e cedilhas, ficam assim por exemplo:
    Código:
    João Jerónimo [SIZE=4]em vez[/SIZE] de João Jerónimo
    Eu gostaria de ver tudo a aparecer correctamente como acontece com outras páginas em português com UTF-8 (como o google.pt)

    Alguém ajuda-me ?

    Obrigado
     
  2. Scarecrow

    Scarecrow Power Member

    Mas tem de ser UTF-8?

    Porque nas minhas páginas utilizo ISO-8859-1 , isto porque com UTF-8 as minhas páginas nem sequer passavam no validador da W3C.

    Cumprimentos
     
  3. joaopj

    joaopj Power Member

    Bom... eu já ouvi dizer em vários sítios que é aconselhavel usar UTF 8... não sei exactamente porquê (ou secalhar não sei) porque ouvi dizer isto há muito tempo...
     
  4. Scarecrow

    Scarecrow Power Member

    Só utilizei o que referi porque supostamente é o oficial para português.. assim não tenho problemas com os ~ e os ´

    Cumprimentos
     
  5. joaopj

    joaopj Power Member

    A sério :| ?
    Eu por acaso nunca soube que era o oficial português...
    Isto vem na wikipedia:

    Pode representar qualquer caracter universal padrão do Unicode, sendo também compatível com o ASCII. Por esta razão, está lentamente a ser adoptado como tipo de codificação padrão para email, páginas web, e outros locais onde os caracteres são armazenados.

    Vou tentar o ISO-8859-1 (não me lembro se já tentei antes, mas acho que sim.... opah vai denovo lol)
     
  6. Scarecrow

    Scarecrow Power Member

  7. joaopj

    joaopj Power Member

    UPDATE:

    Olha fiz uma página de testes, no ISO-8859-1, e ela está aqui: http://joaojeronimo.4000webs.com/testes.php

    Para mim, a página aparece assim:
    Código:
     Olá, isto é uma página de testes onde eu quero testar coisas como isto:
    
     ã á ó ú blá Ã* î â  É tudo, 
    
    Obrigado,  João Jerónimo   
    e supostamente deveria aparecer assim:
    Código:
    Olá, isto é uma página de testes onde eu quero testar coisas como isto:
    
    ã á ó ú blá í î â
    
    É tudo, Obrigado,
    
    João Jerónimo
    PS: Fazendo uma simulação de spider, a página aparece exactamente como eu a vejo (no primeiro código)
     
  8. Scarecrow

    Scarecrow Power Member

    Também me aparece assim, como diz.

    E unicode não dá?

    Todas as minhas páginas iniciam com isto:

    <?xml version="1.0" encoding="ISO-8859-1"?>

    E acho que funcionam bem para o pessoal.. pelo menos ainda não vi ninguém queixar-se.. por isso pensei que desse.

    Cumprimentos
     
  9. joaopj

    joaopj Power Member

    UTF 8 é Unicode... isto vem na wikipedia:
    e se eu usar <?xml version="1.0" encoding="ISO-8859-1"?> dentro de files PHP, eu vou ter erros de parsing dos files, então eu acho que o equivalente para PHP é
    <?php header('Content-type: text/html; charset=ISO-8859-1'); ?>
    que foi o que eu usei no teste.php....
     
  10. _lamy_

    _lamy_ Power Member

  11. Scarecrow

    Scarecrow Power Member

    A opção que o _lamy_ indicou é boa.. embora se torne um pouco chato fazer isso todo para todos os acentos e tils.

    E tinha a ideia que Unicode e UTF-8 eram coisas diferentes, erro meu.

    Cumprimentos
     
  12. joaopj

    joaopj Power Member

    _lamy_, eu usava antigamente esse metodo, mas depois quando eu vejo o source code das minhas pags elas vão aparecer infestadas dessas.... humm.... entidades ou caracteres especiais lol... e isso vai ser muito prejudicial em termos de SEO porque os keywords vão deixar de ser os mesmos... por exemplo, as pessoas não vão googlar por "Jo&atilde;o" e sim por "João"

    O Google.pt tem tudo normal sem caracteres especiais ou lá o que se chamam, e usa UTF-8 e quando eu faço um spider da pag deles, aparece tudo correcto.... É isto que eu quero atingir lool
     
  13. _lamy_

    _lamy_ Power Member

    Epá, não sei então... mas, se tiveres "Jo&atilde;o" vai ser interpretado como João e quando alguem for googlar por João vai coincidir, quase de certeza.

    O único senão é que dá mto trab tar sempre a por essas tais indentidades.. Lolol
    Mas podes fazer sempre um script que dado um documento procure por caracteres especiais e os substitua pela identidade correspondente! :P

    Não, querendo usar isto, supostamente deveria funcionar como tavas a fazer... dando o charset...
     
  14. joaopj

    joaopj Power Member

    Não, "Jo&atilde;o" = "Jo&atilde;o" e "João" = "João" a nivel de search engines.... Se fores a ver o código HTML por exemplo a partir do firefox ou se fizeres um teste de spider, vais ver "Jo&atilde;o" como meteste no HTML... Eu já fiz esse teste... curiosamente nos resultados, aparece tudo bem...

    E no meu editor de texto (o Quanta Plus) dá para fazer um simples Replace que resolve os problemas.... logo eu não teria que andar a substituir cada caracter por uma identidade...
     
  15. s00n

    s00n Power Member

    Também tenho o mesmo problema. E ainda tenho mais. Leituras de base de dados que supostamente estão em UTF-8 os dados [porque os meti], não são bem lidos e ainda o encoding do próprio ficheiro em utf-8 ou ansi.
     
  16. spastikman

    spastikman Banido

    ou o sistema no qual estão a visualizar a página não suporta iso8858-15/utf-8 (mais utilizados com suporte pt), ou então o output gerado pelo servidor de página não está a ser feito utilizando estes charsets.


    O facto de no PHP se incluir um header("charsetblablabla"), estamos apenas a indicar ao browser qual o tipo de caracteres que vão ser enviados. Cabe ao browser, ou ao programa que parsa os dados converter-se.
     

Partilhar esta Página