2015-09-03 18 views
35

python 3.4でセレニウムを使用して要求されたウェブサイトから取得した 'Á'を印刷しようとするとUnicodeEncodeErrorが発生します。UnicodeEncodeError: 'charmap'コーデックは ' u2010'文字をエンコードできません:<undefined>

私はすでに私の.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

同じエンコードの問題は解決していますが、ファイルに書き込むにはどうすればよいですか? – Gennadiii

答えて

131

既にわかっています。 this答えに記されているように、エンコーディングエラーはPythonからではなく、コンソールが使用しているエンコーディングから来ています。だから、それを修正する方法は(Windowsの場合)コマンドを実行することです:UTF-8へのエンコーディングを設定し、再度プログラムを実行し

chcp 65001 

。私のようにpycharmで作業している場合は、Settings> Editor> File Encodingsの順に進み、IDEとProjectのエンコーディングを設定します。

+4

は100万アップノートです。それはPythonではないコンソールでした。 – AwokeKnowing

+0

pyCharmのエンコーディングを変更しても同じエラーが表示されても(Windowsのコンソールで解決しましたが、もうpycharmの内部で作業できません) – Soorena

+0

常にこのエラーが発生しました。素晴らしい解決策。それのために何百万ものupvotes! –

関連する問題