Python 在数据库中输入特殊字符

Python 在数据库中输入特殊字符,python,sqlite,special-characters,Python,Sqlite,Special Characters,我正在扫描我的系统,并使用python将文件名输入sqlite3数据库 其中一个文件的名称中碰巧有一个特殊字符,因此在插入记录时会产生错误。这是文件名 a¿.mp3 这就是问题所在 self.cursor.execute("INSERT INTO TRACKS VALUES (?)", i) 同样由于特殊的字符,我无法用utf-8编码 是否有其他编码可用于将此数据添加到数据库中?您可以尝试utf-16编码,或在特殊字符周围添加“”。您是否为此使用了os.walk?如果这样做,请将目录名作为

我正在扫描我的系统,并使用python将文件名输入sqlite3数据库

其中一个文件的名称中碰巧有一个特殊字符,因此在插入记录时会产生错误。这是文件名

 a¿.mp3
这就是问题所在

self.cursor.execute("INSERT INTO TRACKS VALUES (?)", i)
同样由于特殊的字符,我无法用utf-8编码


是否有其他编码可用于将此数据添加到数据库中?

您可以尝试utf-16编码,或在特殊字符周围添加“”。

您是否为此使用了
os.walk
?如果这样做,请将目录名作为unicode对象而不是裸字符串传递,例如
os.walk(u'/some/path')
以获取unicode格式的所有文件。然后,您可以使用
filename.encode('utf-8')

用utf-8(如果utf-8不够,则使用utf-16)对它们进行编码。utf 16会成功编码其他数据吗?或者我必须不断检查数据类型并进行相应的编码吗?我还没有测试,但假设它可以工作,只要您稍后以utf-16的形式打开它。这是我的源dbInput=[(unicode(I,'utf-16'),表示匹配中的I],而有些是常规输入,有些是特殊字符,我收到的错误是UnicodeDecodeError:“utf16”编解码器无法对位置82:截断数据中的字节0x33进行解码以进行常规输入。可能需要对其进行筛选