Si vous faites "Rendre la chaîne unicode puis la transmettre au module sqlite3" Il peut gérer des chaînes de caractères multi-octets sans aucun problème.
python
import sqlite3,sys,os
con = sqlite3.connect("./temp.sqlite")
#Créer une table
sql = u"""
create table filepath(
id INTEGER PRIMARY KEY AUTOINCREMENT,
path text);"""
con.execute(sql)
#Recevoir la liste des fichiers à partir de l'entrée standard
#Stocker dans DB
for rwln in iter(sys.stdin.readline,""):
path = rwln.rstrip('\n') #Supprimer les sauts de ligne de fin
sql = u"""insert into filepath(path) values (?); """
cur = self.con.cursor()
#Le codage du système de fichiers est sys.getfilesystemencoding()Parce que tu peux l'obtenir avec
#Utilisez ceci pour unicode()Après conversion par fonction, passez-le au module sqlite
cur.execute(sql,(unicode(path, sys.getfilesystemencoding()),))
Outre cette méthode, il peut être stocké après la conversion en base64, Si l'encodage peut être spécifié, il est préférable d'utiliser unicode.