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 Python devuelve es ASCII. ¿Cómo puedo convertir la cadena simple a utf-8?
NOTA: La cadena que se pasa de la web ya está codificada en UTF-8, solo quiero hacer que Python lo trate como UTF-8 y no como ASCII.
python
python-2.7
unicode
utf-8
Bin Chen
fuente
fuente
"some_string".encode('utf-8').decode('utf-8')
Respuestas:
^ Esta es la diferencia entre una cadena de bytes (cadena simple) y una cadena unicode.
^ Convertir a unicode y especificar la codificación.
fuente
UnicodeDecodeError: 'utf8' codec can't decode byte 0xb0 in position 2: invalid start byte
Obtengo el siguiente error: Este es mi código: ret = [] para la línea en csvReader: cline = [] para elm en línea: unicodestr = unicode (elm, 'utf-8') cline.append (unicodestr) ret .append (cline)unicode()
no existen.u
nuevo a unstr
formato (convertir deu
nuevo as
)?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:
fuente
Puede ser un poco exagerado, pero cuando trabajo con ascii y unicode en los mismos archivos, repetir la decodificación puede ser un dolor, esto es lo que uso:
fuente
Agregando la siguiente línea a la parte superior de su archivo .py:
le permite codificar cadenas directamente en su script, así:
fuente
from __future__ import unicode_literals
en la parte superior o use elu''
prefijo. No use caracteres no ascii enbytes
literales. Para obtener bytes utf-8, puedeutf8bytes = unicode_text.encode('utf-8')
hacerlo más tarde si es necesario.from __future__ import unicode_literals
ayudará a convertir una cadena con caracteres no ascii a utf-8?Si te entiendo correctamente, tienes una cadena de bytes codificada utf-8 en tu código.
La conversión de una cadena de bytes a una cadena unicode se conoce como decodificación (unicode -> la cadena de bytes es codificación)
Lo hace utilizando la función unicode o el método de decodificación . Ya sea:
O:
fuente
fuente
En Python 3.6, no tienen un método unicode () incorporado. Las cadenas ya están almacenadas como unicode de forma predeterminada y no se requiere conversión. Ejemplo:
fuente
Traduce con ord () y unichar (). Cada carácter unicode tiene un número asociado, algo así como un índice. Entonces Python tiene algunos métodos para traducir entre un personaje y su número. La desventaja es un ñ ejemplo. Espero que pueda ayudar.
fuente
Sí, puedes agregar
en la primera línea de tu código fuente.
Puede leer más detalles aquí https://www.python.org/dev/peps/pep-0263/
fuente