python utf8 unicode_unicode-python编码utf-8

我正在用python做一些脚本。 我创建一个保存在文件中的字符串。 这个字符串有很多数据,来自目录的树状结构和文件名。根据convmv的介绍,我所有的树状结构都是UTF-8。

我想将所有内容都保留在UTF-8中,因为之后将其保存在MySQL中。现在,在UTF-8的MySQL中,我遇到了一些字符问题(例如é或è-我是法语)。

我希望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!

当我执行时,这是答案:SHOW variables LIKE 'char%'

编辑:我发现在我的档案中口音写得很好。 创建此文件后,我将其读取并将其写入MySQL。但是我不明白为什么,但是我在编码方面遇到了问题。我的MySQL数据库位于utf8中,或者似乎是SQL查询SHOW 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')

很好地显示在文件中的Artiste会将错误写入BDD。问题是什么 ?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值