Wenn Sie "Machen Sie den String unicode und übergeben Sie ihn dann an das sqlite3-Modul" Es kann problemlos Mehrbyte-Zeichenfolgen verarbeiten.
python
import sqlite3,sys,os
con = sqlite3.connect("./temp.sqlite")
#Tabelle erstellen
sql = u"""
create table filepath(
id INTEGER PRIMARY KEY AUTOINCREMENT,
path text);"""
con.execute(sql)
#Empfangen Sie die Dateiliste von der Standardeingabe
#In DB speichern
for rwln in iter(sys.stdin.readline,""):
path = rwln.rstrip('\n') #Entfernen Sie nachgestellte Zeilenumbrüche
sql = u"""insert into filepath(path) values (?); """
cur = self.con.cursor()
#Die Dateisystemcodierung ist sys.getfilesystemencoding()Weil du es mit bekommen kannst
#Verwenden Sie dies zum Unicode()Übergeben Sie es nach der Konvertierung nach Funktion an das SQLite-Modul
cur.execute(sql,(unicode(path, sys.getfilesystemencoding()),))
Neben dieser Methode kann es nach der base64-Konvertierung gespeichert werden. Wenn die Codierung angegeben werden kann, ist es besser, Unicode zu verwenden.
Recommended Posts