[ Thiago M. Figueiredo ]:
-
|Opa galera,
|
|Estou tendo problema em fazer um resultado de um loop porque tenho
|resultado em ISO-8859-1 e no mesmo loop tenho resultado UTF-8
Eu sugiro que vc examine a fonte dos dados (ou fontes) e tente
equalizar o padrão de codificação (encoding) já na fronteira
da sua aplicação. Por exemplo:
- tenha certeza de que todos os dados armazenados
no banco relacional estejam no mesmo encoding.
- tenha certeza de que todos templates estejam escritos no mesmo encoding
- ... e por aí vai
| eu devo transformar os dois em um encode unico
|correto?
Correto. Mas *não* deve fazer isso no loop.
| mais não sei com fazer isso, alguém já passo por isso?
Corrija os dados manualmente na fonte, ou use utilitários
(editores de texto que suportam múltiplos encodings) ou
até mesmo o aplicativo iconv que pode ser scriptizado.
Se precisar fazer a correção no código Python, use as funções
decode e encode.
>>> x = "Represtação de origem"
>>> x
'Represta\xc3\xa7\xc3\xa3o de origem'
# Está em UTF-8 note os 2 bytes -> 1 caracter acentuado
>>> x.decode("utf-8").encode("iso-8859-1")
'Represta\xe7\xe3o de origem'
# Agora está em iso-8859-1, note 1 byte -> 1 caracter acentuado
Abração
Senra
Atenciosamente,
Rodrigo Senra