成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

python base64解碼 Python和SQLite問題,怎么解決?

Python和SQLite問題,怎么解決?如果中文數(shù)據(jù)存儲(chǔ)在SQLite數(shù)據(jù)庫的某個(gè)字段中,然后通過查詢語句和相關(guān)的字符串操作進(jìn)行檢索,常常會(huì)出現(xiàn)類似unicode decodeerror的錯(cuò)誤提示,

Python和SQLite問題,怎么解決?

如果中文數(shù)據(jù)存儲(chǔ)在SQLite數(shù)據(jù)庫的某個(gè)字段中,然后通過查詢語句和相關(guān)的字符串操作進(jìn)行檢索,常常會(huì)出現(xiàn)類似unicode decodeerror的錯(cuò)誤提示,表示某類代碼無法轉(zhuǎn)換。這個(gè)問題的原因是Python默認(rèn)使用Unicode來處理SQLite3的文本類型(varchar類型也是如此,因?yàn)樵赟QLite中,varchar實(shí)際上是文本)。Python在數(shù)據(jù)庫中存儲(chǔ)中文時(shí)使用類似于GBK的代碼。在獲取它時(shí),它會(huì)嘗試將文本數(shù)據(jù)轉(zhuǎn)換為Unicode,從而導(dǎo)致錯(cuò)誤。另一個(gè)不容易發(fā)現(xiàn)的錯(cuò)誤是,數(shù)據(jù)庫中存儲(chǔ)的中文是用Base64編碼的,用Python取出時(shí)不會(huì)有錯(cuò)誤。但是,在對(duì)SQLite3中取出的其他文本字段進(jìn)行Base64解碼和字符串拼接后,會(huì)出現(xiàn)編碼轉(zhuǎn)換錯(cuò)誤。很難找到問題的原因,可以解碼其他文本字段,例如“AAA”。Encode(“GBK”)編碼為GBK碼,但不提倡這種方法。更好的方法是:在Python連接到SQLite數(shù)據(jù)庫之后,設(shè)置如下:conn=SQLite3。連接(“…”)連接文本Factory=STR另外,為了避免Python代碼中硬編碼的中文字符串的問題,除了添加#-*-編碼:utf-8-*-還將Python源代碼的編碼設(shè)置為UTF-8 import sysreload(sys)sys.setdefaultencode設(shè)置默認(rèn)編碼(“utf8”)