代码之家  ›  专栏  ›  技术社区  ›  Mr. Polywhirl

无法将二进制字符串解码为Unicode省略号[duplicate]

  •  0
  • Mr. Polywhirl  · 技术社区  · 5 年前

    当我试图打印一个“Ô时,我不断收到UnicodeEncodeError,这是我从一个使用python 3.4中的selenium请求的网站上得到的。

    我已经在我人生的巅峰定义了。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>
    

    提前谢谢

    0 回复  |  直到 9 年前
        1
  •  181
  •   Community George Stocker    7 年前

    我已经弄明白了。正如在 this 答:编码错误不是来自python,而是来自控制台使用的编码。因此,解决方法是运行命令(在windows中):

    chcp 65001
    

    这会将编码设置为UTF-8,然后再次运行该程序。或者,如果像我一样使用pycharm,请转到设置>编辑>文件编码并设置IDE和项目编码。