import sqlite3 def unfuck_unicode(text): return ''.join([chr(n) for n in [ord(i) for i in text]]).decode('utf-8') conn = sqlite3.connect('iTunesLibrary.db') curs = conn.cursor() upcurs = conn.cursor() curs.execute('select track_id, location from track where location is not null') for id, datum in curs.fetchall(): try: datum.decode('utf-8') except UnicodeEncodeError: print id, type(datum), datum.encode('utf-8') #upcurs.execute('update track set location = ? where track_id = ?', # (datum.encode('utf-8'), id)) conn.commit()