我正在使用Python工具开发visualstudio,并阅读了一些用意大利语编写的文件。尝试过iso-8859-1、iso-8859-2、utf-8、utf-8-sig。记事本++以不带BOM的UTF-8格式打开文件。在
content = fp.read()
words = content.decode("utf-8-sig").lower().split()
for w in words:
p=''
cur.execute('SELECT word FROM multiwordnet.italian_lemma l, multiwordnet.italian_synset s where l.id = s.id and l.lemma="%s"' % w)
导致崩溃的字符串是C'è
。(读取为"c\'\xe3\xa8"
)
使用chardet没有帮助
^{pr2}$
假设数据库的绑定变量样式是
format
。。。在注意,我们没有在SQL字符串和传入的变量之间使用
%
运算符,也没有在%s
周围加上内引号;%s
是一个占位符,用来标识在SQL中该单词应该被替换的位置,我们将作为单独的参数传递要替换占位符的值。遵循这种做法不仅可以防止您需要处理编码问题(如果您的参数是作为Python Unicode字符串传递的,那么数据库绑定负责从那里获取它),而且还可以防止SQL injection安全漏洞。在Python的其他数据库库可能使用不同的占位符样式;请阅读文档或检查模块级别的
paramstyle
常量。(对于qmark
您的占位符应该是?
;对于numeric
,它应该是冒号前缀的数字(:1
代表第一个参数,:2
代表第二个参数,依此类推)相关问题 更多 >
编程相关推荐