sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Cómo puedo verificar una cadena Unicode de Python para ver que *realmente* es Unicode adecuado?

Hay un error en python 2.x eso solo es python 3.x fijo. De hecho, este error está incluso en iconv de OS X (pero no en glibc).

Esto es lo que está pasando:

Python 2.x no reconoce los pares sustitutos de UTF8 [1] como no válidos (que es lo que es su secuencia de caracteres)

Esto debería ser todo lo que se necesita:

foo.decode('utf8').encode('utf8')

Pero gracias a ese error que no están solucionando, no detecta los pares sustitutos.

Pruebe esto en python 2.x y luego en 3.x:

b'\xed\xbd\xbf'.decode('utf8')

Lanzará un error (correctamente) en este último. Tampoco lo están arreglando en la rama 2.x. Consulte [2] y [3] para obtener más información

[1] https://www.rfc-editor.org/rfc/ rfc3629#sección-4

[2] http://bugs.python.org/issue9133

[3] http://bugs.python.org/issue8271#msg102209