utilicé esta:Cómo hacer cadena Unicode con python3
u = unicode(text, 'utf-8')
Pero conseguir el error con Python 3 (o tal vez ... Me olvidé de incluir algo):
NameError: global name 'unicode' is not defined
Gracias .
utilicé esta:Cómo hacer cadena Unicode con python3
u = unicode(text, 'utf-8')
Pero conseguir el error con Python 3 (o tal vez ... Me olvidé de incluir algo):
NameError: global name 'unicode' is not defined
Gracias .
Las cadenas literales son Unicode de manera predeterminada en python3
Suponiendo que el texto es un objeto bytes
, sólo tiene que utilizar text.decode('utf-8')
unicode
de python2 es equivalente a str
en python3, por lo que también se puede escribir
str(text, 'utf-8')
si usted prefiere
What's new in Python 3.0 dice:
All text is Unicode; however encoded Unicode is represented as binary data
Si desea asegurarse de que está dando salida UTF-8, que aquí es un ejemplo de esta página en unicode in 3.0:
b'\x80abc'.decode("utf-8", "strict")
esto es exactamente lo que necesitamos para '\ x80abc'.decode ("utf-8", "strict") en Python 2, gracias – hylepo
Como solución, He estado usando esto:
# Fix Python 2.x.
try:
UNICODE_EXISTS = bool(type(unicode))
except NameError:
unicode = lambda s: str(s)
¿Por qué estás usando una función lambda? Estos métodos se llaman de la misma manera en cualquier caso. Esta es una variación más simple: 'try: unicode = str; excepto: pase'. –
Si hay una razón increíble para actualizar a python 3, es unicode por defecto. – JBernardo