utf8 python python-2.7 unicode utf-8

utf8 - Cómo convertir una cadena a utf-8 en Python



python string to unicode (8)

Agregando la siguiente línea a la parte superior de su archivo .py:

# -*- coding: utf-8 -*-

le permite codificar cadenas directamente en su secuencia de comandos, como esta:

utfstr = "ボールト"

Tengo un navegador que envía caracteres utf-8 a mi servidor Python, pero cuando lo recupero de la cadena de consulta, la codificación que devuelve Python es ASCII. ¿Cómo puedo convertir la cadena simple a utf-8?

NOTA: La cadena que pasó desde la web ya está codificada en UTF-8, solo quiero hacer que Python lo trate como UTF-8 no como ASCII.


En Python 3.6, no tienen una función incorporada de unicode (). Para convertir una cadena en unicode, simplemente obtenga el valor unicode del caracter, y haga esto:

my_str = "/u221a25" my_str = u"{}".format(my_str) print(my_str) >>> √25


Puede ser un poco exagerado, pero cuando trabajo con ascii y unicode en los mismos archivos, repetir la decodificación puede ser un problema, esto es lo que uso:

def make_unicode(input): if type(input) != unicode: input = input.decode(''utf-8'') return input else: return input


Si los métodos anteriores no funcionan, también puede decirle a Python que ignore partes de una cadena que no puede convertir a utf-8:

stringnamehere.decode(''utf-8'', ''ignore'')


Si te entiendo correctamente, tienes una cadena de bytes codificada en utf-8 en tu código.

La conversión de un byte-string a una cadena Unicode se conoce como decodificación (unicode -> byte-string es la codificación).

Lo haces usando la función unicode o el método de decode . Ya sea:

unicodestr = unicode(bytestr, encoding) unicodestr = unicode(bytestr, "utf-8")

O:

unicodestr = bytestr.decode(encoding) unicodestr = bytestr.decode("utf-8")


Traduzca con ord () y unichar (). Todos los caracteres Unicode tienen un número asociado, algo así como un índice. Así que Python tiene algunos métodos para traducir entre un char y su número. Un inconveniente es un ejemplo. Espero que pueda ayudar.

>>> C = ''ñ'' >>> U = C.decode(''utf8'') >>> U u''/xf1'' >>> ord(U) 241 >>> unichr(241) u''/xf1'' >>> print unichr(241).encode(''utf8'') ñ


>>> plain_string = "Hi!" >>> unicode_string = u"Hi!" >>> type(plain_string), type(unicode_string) (<type ''str''>, <type ''unicode''>)

^ Esta es la diferencia entre una cadena de bytes (plain_string) y una cadena Unicode.

>>> s = "Hello!" >>> u = unicode(s, "utf-8")

^ Convertir a unicode y especificar la codificación.


city = ''Ribeir/xc3/xa3o Preto'' print city.decode(''cp1252'').encode(''utf-8'')