python 3.2 UnicodeEncodeError: кодек 'charmap' не может кодировать символ '\ u2013' в позиции 9629: символ отображается на <undefined>

я пытаюсь создать скрипт, который получает данные из базы данных sqlite3, но я столкнулся с проблемой.

Поле в базе данных имеет тип text и содержит форматированный текст html. см текст ниже



Yahoo!



html {}
.yshortcuts {border-bottom:none !important;}
.ReadMsgBody {width:100%;}
.ExternalClass{width:100%;}

    



    
        
            <img src="http://mail.yimg.com/nq/assets/sharedmessages/v1/us/logo.gif" width="292" height="51" style="display:block;" border="0" alt="Yahoo! Mail">
        
        
            
            
            
        
        
            
            
                
                    
                    
                    <span style="color:#ffffff;text-decoration:none;font-weight:bold;line-height:27px;">Välkommen till Yahoo! Mail.</span>
                    Ansluta och dela går snabbt och enkelt och är tillgängligt överallt.
                    
                
                
                    <img src="http://mail.yimg.com/nq/assets/sharedmessages/v1/all/b1.gif" width="498" height="18" style="display:block;" border="0">
                
            
            
                
                    
                    
                        
                            <img src="http://mail.yimg.com/nq/assets/sharedmessages/v1/all/grad.gif" width="292" height="9" style="display:block;">
                        
                        
                            
                            
                                              
                                Det är lätt som en plätt att komma igång.
                                
                                    
                                        1. 
                                        <a rel="nofollow" target="_blank" href="http://us-mg999.mail.yahoo.com/neo/launch?action=contacts" style="text-decoration:underline;color:#61399d;"><span>Lägg till alla dina kontakter på en plats</span></a>.
                                    
                                    
                                        2. 
                                        <a rel="nofollow" target="_blank" href="http://mrd.mail.yahoo.com/themes" style="text-decoration:underline;color:#61399d;"><span>Anpassa din nya inkorg</span></a>.
                                    
                                    
                                        3. 
                                        <a rel="nofollow" target="_blank" href="http://se.overview.mail.yahoo.com/mobile" style="text-decoration:underline;color:#61399d;"><span>Anslut överallt på dina mobila enheter</span></a>.
                                    
                                

                            
                            
                        
                        
                    
                    
                    
                    
                        
                            <img src="http://mail.yimg.com/nq/assets/sharedmessages/v1/all/g1.gif" width="1" height="21" style="display:block;">
                            <img src="http://mail.yimg.com/nq/assets/sharedmessages/v1/all/g2.gif" width="1" height="21" style="display:block;">
                            <img src="http://mail.yimg.com/nq/assets/sharedmessages/v1/all/g3.gif" width="1" height="21" style="display:block;">
                            
                              
                               
                            
                            Info för dig:
                            
                            Yahoo!-ID och e-postadress:<br>
                            
                            Håll ditt konto och inställningar aktuella. <br><a rel="nofollow" target="_blank" href="https://edit.yahoo.com/config/eval_profile" style="text-decoration:underline;color:#61399d;"><span>Mitt konto</span></a> 
                            
                            
                            
                            
                            
                            
                            
                            
                            
                            
                        
                        
                            <img src="http://mail.yimg.com/nq/assets/sharedmessages/v1/all/b2.gif" width="196" height="8" style="display:block;" border="0">
                        
                        
                    
                    
                    
                
            
            
        
        
            
        
    
    
        
            
            
                
                <a rel="nofollow" target="_blank" href="http://info.yahoo.com/legal/se/yahoo/utos.html" style="text-decoration:underline;color:#61399d;">Yahoo! Villkor för användning</a>   |   <a rel="nofollow" target="_blank" href="http://info.yahoo.com/legal/se/yahoo/mail/atos.html" style="text-decoration:underline;color:#61399d;">Yahoo! Mail –Villkor för användning</a>   |   <a rel="nofollow" target="_blank" href="http://info.yahoo.com/privacy/se/yahoo/details.html" style="text-decoration:underline;color:#61399d;">Yahoo! Sekretesspolicy</a>
                
            
        
        
            
                Var god svara inte på detta meddelande. Detta är ett servicemeddelande som rör din användning av Yahoo! Mail. Om du vill veta mer om Yahoo!s användning av personlig information, inklusive användning av webb-beacons i HTML-baserad e-post, kan du läsa vår Yahoo! Sekretesspolicy. Yahoo!s adress är 701 First Avenue, Sunnyvale, CA 94089, USA.<br><br>RefID: lp-1037111
            
        
    





    


<img width="1" height="1" src="http://pclick.internal.yahoo.com/p/s=2143684696">

`

и код Python, который пытается извлечь данные, выглядит следующим образом.

>>> import sqlite3
>>> conn = sqlite3.connect('C:/temp/Mobils/export/com.yahoo.mobile.client.android.mail/databases/mail.db')
>>> c = conn.cursor()
>>> conn.row_factory=sqlite3.Row
>>> c.execute('select body from messages_1 where _id=7')

>>> r = c.fetchone()
>>> r.keys()
['body']
>>> print(r['body'])
Traceback (most recent call last):
  File "", line 1, in 
  File "C:\Python32\lib\encodings\cp850.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_map)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u2013' in position 9629: character maps to 
>>>

Кто-нибудь имеет представление о том, как напечатать / записать это в файл. Да, я знаю, что это печатается на стандартный вывод, но я получаю тот же UnicodeEncodeError, когда я пытаюсь записать в файл. Я пробовал и метод записи объекта файла и.print(r['body'], file=f)

Ответы на вопрос(3)

Ваш ответ на вопрос