кодировка Python UTF-8

Я делаю некоторые скрипты на Python. Я создаю строку, которую я сохраняю в файле. Эта строка получила много данных, исходя из древовидности и имен файлов каталога. Согласно convmv, все мое древовидность в UTF-8.

Я хочу сохранить все в UTF-8, потому что я сохраню это в MySQL после. На данный момент в MySQL, который находится в UTF-8, у меня возникли проблемы с некоторыми символами (например, é или è - яя француз).

Я хочу, чтобы Python всегда использовал строку как UTF-8. Я прочитал некоторую информацию в Интернете, и мне это понравилось.

Мой сценарий начинается с этого:

 #!/usr/bin/python
 # -*- coding: utf-8 -*-
 def createIndex():
     import codecs
     toUtf8=codecs.getencoder('UTF8')
     #lot of operations & building indexSTR the string who matter
     findex=open('config/index/music_vibration_'+date+'.index','a')
     findex.write(codecs.BOM_UTF8)
     findex.write(toUtf8(indexSTR)) #this bugs!

И когда я выполню, вот ответ:UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 2171: ordinal not in range(128)

Изменить: я вижу, в моем файле, акцент хорошо написано. После создания этого файла я читаю его и записываю в MySQL. Но я не понимаю почему, но у меня проблема с кодировкой. Моя база данных MySQL находится в utf8 или, кажется, запрос SQLSHOW variables LIKE 'char%' возвращает мне только utf8 или бинарный.

Моя функция выглядит так:

#!/usr/bin/python
# -*- coding: utf-8 -*-

def saveIndex(index,date):
    import MySQLdb as mdb
    import codecs

    sql = mdb.connect('localhost','admin','*******','music_vibration')
    sql.charset="utf8"
    findex=open('config/index/'+index,'r')
    lines=findex.readlines()
    for line in lines:
        if line.find('#artiste') != -1:
            artiste=line.split('[:::]')
            artiste=artiste[1].replace('\n','')

            c=sql.cursor()
            c.execute('SELECT COUNT(id) AS nbr FROM artistes WHERE nom="'+artiste+'"')
            nbr=c.fetchone()
            if nbr[0]==0:
                c=sql.cursor()
                iArt+=1
                c.execute('INSERT INTO artistes(nom,status,path) VALUES("'+artiste+'",99,"'+artiste+'/")'.encode('utf8')

А артистка, которая красиво отображается в файле, плохо пишет в BDD. В чем проблема ?

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

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