utf8 unidecode unicodeencodeerror python3 python-3.x selenium encoding utf-8

python-3.x - unidecode - unicodeencodeerror python 3



UnicodeEncodeError: el códec ''charmap'' no puede codificar el carácter ''/ u2010'': los mapas de los caracteres a<indefinido> (1)

Esta pregunta ya tiene una respuesta aquí:

Sigo recibiendo UnicodeEncodeError cuando intento imprimir una ''Á'' que obtengo de un sitio web solicitado usando selenio en python 3.4.

Ya definí en la parte superior de mi archivo .py

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

la definición es algo como esto:

from selenium import webdriver b = webdriver.Firefox() b.get(''http://fisica.uniandes.edu.co/personal/profesores-de-planta'') dataProf = b.find_elements_by_css_selector(''td[width="508"]'') for dato in dataProf: print(datos.text)

y la excepción:

Traceback (most recent call last): File "C:/Users/Andres/Desktop/scrap/scrap.py", line 444, in <module> dar_p_fisica() File "C:/Users/Andres/Desktop/scrap/scrap.py", line 390, in dar_p_fisica print(datos.text) #.encode().decode(''ascii'', ''ignore'') File "C:/Python34/lib/encodings/cp1252.py", line 19, in encode return codecs.charmap_encode(input,self.errors,encoding_table)[0] UnicodeEncodeError: ''charmap'' codec can''t encode character ''/u2010'' in position 173: character maps to <undefined>

gracias por adelantado


Ya lo descubrí. Como se señala en this respuesta, el error de codificación no proviene de python, sino de la codificación que está usando la consola. Entonces, la forma de solucionarlo es ejecutar el comando (en Windows):

chcp 65001

eso establece la codificación a UTF-8 y luego ejecuta el programa nuevamente. O si está trabajando en pycharm como yo lo hice, vaya a Configuración> Editor> Codificación de archivos y establezca las codificaciones IDE y Proyecto de manera concomitante.