[Cascavel-pm] [off] Problemas com charset. Dicas para solução?

João Gabriel Casteluber Laass gabriel em joaogabriel.org
Sábado Junho 19 06:14:46 PDT 2010


Uhh! Vamos com calma, vou tentar responder algumas questões.

1. Se eu "voltar no tempo" e exportar o banco de dados antes da formatação,
eu irei perder os novos registros. Acreditem, depois da formatação muitos
registros foram feitos.

2. A codificação do banco e a codificação da página web (aplicação) estão em
UTF-8.

3. Se eu der um dump hoje, via DOS, os novos registros saem corretamente
acentuaçãos. Os antigos permanecem incorretos. (a saida do dump vai para um
arquivo SQL)


> Mas, pode ser que algum software recodificou os caracteres com essa
> interpretação errada e aí você nunca vai saber qual era a codificação do
> caracter original, porque nesse caso o banco de dados realmente está
> armazenando caracteres codificados, em UTF8, que foram re-convertidos de
> uma decodificação errônea para Latin-1. (ufa, deu pra entender?)

Sim, entendi. (não queria entender, mas entendi).


Vou fazer mais alguns testes (em ambiente de testes é claro) e posto minha
conclusões assim que possível.


Um abraço,
João Gabriel Casteluber Laass









Em 18 de junho de 2010 21:51, Eden Cardim <edencardim em gmail.com> escreveu:

> >>>>> "João" == João Gabriel Casteluber Laass <gabriel em joaogabriel.org>
> writes:
>
>    João> O problema é que todas as palavras acentuadas agora aparecem
>    João> com um "?" em navegadores web.
>
> Tem certeza que são só as acentuadas?
>
>    João> Não é o charset da aplicação que solicita dados no banco de
>    João> dados porque é a mesma aplicação (inclusive a versão da
>    João> aplicação é a mesma)
>
> Explica de novo, isso que você falou não fez sentido.
>
>    João> [A aplicação em questão é o DotProject versão 2.1 e os campos
>    João> com texto estão com COLLATE utf8_unicode_ci].
>
> COLLATE não tem nada a ver com a exibição dos caracteres.
>
>    João> Outro fato é que os novos registros no banco de dados estão
>    João> corretos.Já tentei de várias formas (usando Perl, Java,
>    João> funções do PHP, outros softwares) descobrir em que charset
>    João> estão as palavras acentuadas com erro. Não consegui
>    João> nada. Absolutamente nada.
>
> Sinto lhe informar, mas codificação de caracteres não é algo dedutível,
> você precisa saber a codificação usada na hora em que os caracteres
> foram armazenados, não tem como "adivinhar". O máximo que você pode
> fazer é ir tentando todas as codificações que você acha que foram usadas
> e verificar visualmente se o caracter que aparece faz sentido.
>
>    João> Segue um exemplo de pequenas frases com problemas:CAF� DA
>    João> TARDE --> deveria ser "CAFÉ DA TARDE"Caf é --> deveria ser
>    João> "Café"REUNI�ES INTERNAS --> deveria ser "REUNIÕES INTERNAS"
>
> Isso está com cara de UTF8 interpretado como Latin-1 ou algum outro tipo
> de codificação de largura não-variável. Tanto UTF8 e Latin-1 são
> projetadas para que os primeiros 128 caracteres coincidam com ASCII, por
> motivo de retrocompatibilidade, por isso o problema só se manifesta nos
> caracteres non-ASCII (dentre eles, as letras acentuadas). Observa como o
> "é" se transformou em "é" (dois caracteres) e "Õ" se transformou em
> "�" (3 caracteres) por conta do fato de "é" em UTF8 ser representado
> por 2 bytes e "Õ" ser representado por 3 bytes. Ou seja, os caracteres
> estão armazenados em UTF8 mas o software que exibe os caracteres está
> decodificando em alguma codificação de tamanho fixo (como Latin-1). Se
> for isso é bem simples, é só mudar a codificação do browser para UTF-8
> (no firefox fica em View > Character Encoding > Unicode (UTF8)). Mas,
> pode ser que algum software recodificou os caracteres com essa
> interpretação errada e aí você nunca vai saber qual era a codificação do
> caracter original, porque nesse caso o banco de dados realmente está
> armazenando caracteres codificados, em UTF8, que foram re-convertidos de
> uma decodificação errônea para Latin-1. (ufa, deu pra entender?)
>
> Seguem alguns artigos que deve esclarecer melhor o que está acontecendo:
> http://www.joelonsoftware.com/articles/Unicode.html
> http://www.faqs.org/rfcs/rfc2044.html
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/cascavel-pm/attachments/20100619/bf7c5a84/attachment.html>


Mais detalhes sobre a lista de discussão Cascavel-pm