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