UnicodeEncodeError:'charmap'编解码器不能编码字符'\ u2010':字符映射到<undefined>
当我试图打印从python 3.4中使用selenium所请求的网站上获得的“Á”时,我总是收到UnicodeEncodeError。
我已经定义在我的.py文件的顶部
# -*- coding: utf-8 -*-
def是这样的:
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)
和例外:
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>
提前致谢
已经算出来了。 正如在这个答案中指出的,编码错误不是来自python,而是来自控制台正在使用的编码。 所以解决它的方法是运行命令(在Windows中):
chcp 65001
将编码设置为UTF-8,然后再次运行程序。 或者,如果像我一样使用pycharm,请转至设置>编辑器>文件编码,并设置IDE和项目编码。