O meu problema não é com o entendimento dos charsets, tirando as
particularidades do PZP, como ter q mudar para latin-1 para gravar. O
meu problema é a toda hora precisar fazer encode, decode via python.
Isso gasta tempo e é muito irritante. No meu ver ,a linguagem deveria
ser transparente com relação a este assunto.
Mas eu gostei das dicas, vão me ajudar daqui em diante. 

Com relação ao problema, 
Eu entrei em contato com o Wilton e com o pessoal da Pytown, o Diego
na verdade e ele resolveu o problema. O Wilton tmb achou a solução,
mas eu estava com dificuldades de alterar o arquivo no linux
remotamente via SSH, porque eu não sei usar direito o editor.

O problema é que o PYTHON estava utilizando ASCII, que ele utiliza por
padrão. Vejam a explicação do Diego

------------------------------------------------------------
Por padrão o interpretador Python assume que toda string está em
ascii, porém ascii não possui caracteres de acento e por isso irá
gerar erro se tentar representar em ascii uma string com acentos.

Nesse caso eu modifiquei o encoding do Python que o seu Zope usa para
UTF-8, conforme instruções do link[1]. Desta forma o encoding padrão
que o Python assume é o UTF-8 ao invés de ascii.

Peço que você teste novamente se os erros continuam e caso continuem
nos forneça informações mais detalhadas do problema, como Screen
Shots, links ou tracebacks do erro.


[1]
http://taniaa.objectis.net/tutoriais/python-zope-plone/erro-ascii-na-migracao/

Agradeço muito aos que ajudaram, finalmente, o problema está
resolvido. Era a configuração do python.

att

Bruno Marota



> Em Python, quando tu declara uma string com a syntaxe u'Minha string', 
> tu estás na verdade criando um objeto do tipo 'unicode'. Quando usa a 
> syntaxe convencional 'Minha string', o interpretador não tem como saber 
> em qual conjunto de caracteres ela está representada, e por padrão ele 
> assume que seja 'ascii'.
> 
> Por exemplo, se digitar o seguinte em um console Python:
> 
> u'%s' % 'á'
> 
> o interpretador tentaria criar uma string unicode formatada a partir de 
> uma string unicode de parâmetro. Como o que foi passado de parâmetro
foi 
> uma string normal, ela deve ser convertida para unicode primeiro,
mas ao 
> fazer a conversão o interpretador assume que ela está em ascii, mas 
> ascii não tem caracteres com acento, e portanto uma excessão é gerada.
> 
> Tu chegaste a mencionar que quando o username estava vazio dava erro, 
> isso é por que tu não podes construir um objeto unicode a partir de
algo 
> diferente de uma string (como é o caso do None que provavelmente ele 
> estava recebendo no teu código).
> 
> Aqui tem algumas informações sobre encodings interessantes:
> http://www.slideshare.net/codebits/unicode-poetry-167368
> 
> []'s
> 
> Daniel
> 
> -- 
> Daniel Monteiro Basso
> Líder Técnico do Centro de Inovação
> Trino Pólo - Pólo de Informática de Caxias do Sul
> http://www.trinopolo.com.br
>


Responder a