[Usuarios Plone] UnicodeDecodeError (migrando de Plone 3.3 a 4.1)

Noe Nieto nnieto at noenieto.com
Thu Oct 6 19:29:45 UTC 2011


El 6 de octubre de 2011 15:07, Erik Rivera Morales
<erik.river en gmail.com>escribió:

> Hola, recurro a ustedes porque tengo un problema muy extraño en una
> migración que estoy haciendo.
>
> *Contexto:*
> Hice una actualización de un portal en producción de Plone 3.3.5 a Plone
> 4.1, el sitio cuenta con los complementos:
>
> collective.lineage
> Products.Carousel
> Products.Collage
> Products.PloneArticle
> Products.Scrawl
> Products.PlonePopoll
> Products.PloneFlashUpload
> Products.slideshowfolder
>
> Todos los anteriores en su versión compatible con Plone 4.1
>
> Como el sitio estaba muy desordenado y ya tenía mucha información basura y
> gran cantidad de cuentas de usuario que no se usaban; se decidió exportar
> solo el contenido deseado y llevarlo a una instalación nueva de Plone 4.1 en
> otro servidor, esta actividad se hizo con archivos .ZEXP y no hubo ningún
> problema, el sitio es navegable como Manager y Anonymous
>
> *Problema:*
>
> Al crear cuentas de miembros y al acceder al portal con estas, se obtienen
> errorres de tipo UnicodeDecodeError que rompen por completo la renderización
> de plantillas; en el navegador solo obtengo esto:
>
> UnicodeDecodeError('ascii', 'user:Blog de Comercializaci\xc3\xb3n', 27, 28,
> 'ordinal not in range(128)') (Also, the following error occurred while
> attempting to render the standard error message, please see the event log
> for full details: ('ascii', 'user:Blog de Comercializaci\xc3\xb3n', 27, 28,
> 'ordinal not in range(128)'))
>

El problema está en que tienes guardados caracteres no-ascii en cadenas
ascii. ZPT o algún otro componente de plone se están dando una sorpresa al
ver que el codec ascii no sabe qué hacer con los caracteres no-ascii.
Entonces tienes que decodificar esas cadenas como 'utf-8' y guardarlas en un
objeto unicode.

Cuando he tenido éste problema lo que mejor me ha funcionado es lanzar una
consola de debug de plone y convertir esos campos a utf8.

Algunos tips:

   - Usa bin/instance run script.py
      - Eso te da el chance de que el script.py tenga acceso a la ZODB y
      puedas ir objeto por objeto y arreglarlos.
      - No olvides guardar los cambios con: import transaction;
      transaction.commit()
   - Para convertir una cadena ascii con caracteres no-ascii a unicode:

>>> cadena = 'user:Blog de Comercializaci\xc3\xb3n'
>>> cadena
'user:Blog de Comercializaci\xc3\xb3n'
>>> print cadena
user:Blog de Comercialización
>>> cadena.decode('utf-8')
u'user:Blog de Comercializaci\xf3n'
>>> cadena.decode('utf-8', errors='ignore')
u'user:Blog de Comercializaci\xf3n'
>>> print cadena.decode('utf-8', errors='ignore')
user:Blog de Comercialización




>
> y en los logs:
> http://pastebin.com/5BRSLbZv
>
> *Intento de Solucionar 1:*
>
> De acuerdo a este hilo:
> http://sourceforge.net/mailarchive/message.php?msg_id=27415355 que hablan
> de una migración de Plone3.3.5 . 4.0.5
> recurrí a un viejo truco que usé hace tiempo con algunos productos
> obsoletos en plone3.3 de crear el archivo sitecustomization.py: import sys;
> sys.setdefaultencoding('utf-8') y ponerlo en el site-packages
>
> limpié y reidexé el catalog y no funcionó.
>

Felicidades, ahora tienes un sitio plone completamente "unsupported".


>
> *Intento de Solucionar 2:*
>
> Probé eliminado el item que da el error y que esta creado
> con Products.Scrawl, pero sigue mostrando el mismo UnicodeDecodeError ahora
> con otro contenido del mismo producto.
> Después borré todos los items que usan Scrawl y desinstalé el producto, sin
> embargo continuó el error
> He limpiado y reconstruido el catalog desde la sección Advance del
> portal_catalog y también desde sección Indexes he limpiado y reidexado
> manualmente el metadata y sigue mostrando el mismo texto de error inicial a
> pesar que ya eliminé esos items de la zodb.
>

Traceback?

Prueba lo que puse anteriormente con un solo objeto. Si funciona, después lo
haces con los demás.


>
> *Intento de Solucionar 3:*
> *
> *
> Vi que en el ChangeLog de Plone 4.1.1 hacen una actualización
> al Products.ZCatalog, opte por actualizar el plone a 4.1.1-pending pero
> sigue el mismo error.
>
>
> Por el momento ya no se que mas hacer, no le encuentro la logica a este
> problema ya que puedo navegar con la cuenta de admin sin ningún problema e
> incluso como usuario anónimo, pero solo con cuentas de miembro ocurre esto
> ¿hay alguien aquí que le haya pasado algo similar y encontró solución? o
> ¿alguien sabe de algún truco para recrear el catalogo otra vez?
>



>
> Agradecería cualquier tip! Saludos.
>
> _______________________________________________
> Usuarios-Plone mailing list
> Usuarios-Plone en lists.plone.org
> https://lists.plone.org/mailman/listinfo/plone-usuarios-plone
>
>


-- 
---
Noe Nieto
NNieto Consulting Services
M: nnieto en noenieto.com
W: http://noenieto.com
T:  @tzicatl <https://twitter.com/#%21/tzicatl>
Li: Perfil en LinkedIn <http://www.linkedin.com/profile/view?id=84300665>
------------ pr?xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.plone.org/pipermail/plone-usuarios-plone/attachments/20111006/d72438ea/attachment.html>


More information about the Usuarios-Plone mailing list