2006年11月10日 星期五 09:25
昨晚调试PySQLite2时发现的。可以向数据库中存储一个字符串,而不需要指定字符集,只要对数据库的存取中,你对字符集有所把握即可。 具体做法就是向数据库保存字符串的时候使用buffer类型。比如一个插入数据的过程: data="我在中国" cur.execute("INSERT INTO tt VALUES (null,?);",(buffer(data),)) 这就是可以执行成功的,并不需要转换编码。 同理,取出数据的时候,用str()函数转换成字符串就可以了。 使用buffer还可以向数据库中插入BLOB类型的数据。 这是一种并不规范的方法,在数据库中存储的字符串也不在是Unicode,而是原始编码数据,只是比以前方便一点而已。 -- 从前有一只很冷的毛毛虫,他想获得一点温暖。而获得温暖的机会只有从树上掉下来,落进别人的领口。 片刻的温暖,之后便失去生命。而很多同类却连这片刻的温暖都没有得到就.. 我会得到温暖么?小心翼翼的尝试,却还是会受到伤害。 我愿为那一刻的温暖去拼,可是谁愿意接受? 欢迎访问偶的博客: http://blog.csdn.net/gashero
2006年11月10日 星期五 09:30
还有一个缺点就是无法用数据库的管理程序进行管理了。 On 11/10/06, gashero <harry.python at gmail.com> wrote: > > 昨晚调试PySQLite2时发现的。可以向数据库中存储一个字符串,而不需要指定字符集,只要对数据库的存取中,你对字符集有所把握即可。 > > 具体做法就是向数据库保存字符串的时候使用buffer类型。比如一个插入数据的过程: > > data="我在中国" > cur.execute("INSERT INTO tt VALUES (null,?);",(buffer(data),)) > 这就是可以执行成功的,并不需要转换编码。 > 同理,取出数据的时候,用str()函数转换成字符串就可以了。 > 使用buffer还可以向数据库中插入BLOB类型的数据。 > > 这是一种并不规范的方法,在数据库中存储的字符串也不在是Unicode,而是原始编码数据,只是比以前方便一点而已。 > > -- > 从前有一只很冷的毛毛虫,他想获得一点温暖。而获得温暖的机会只有从树上掉下来,落进别人的领口。 > 片刻的温暖,之后便失去生命。而很多同类却连这片刻的温暖都没有得到就.. > 我会得到温暖么?小心翼翼的尝试,却还是会受到伤害。 > 我愿为那一刻的温暖去拼,可是谁愿意接受? > > 欢迎访问偶的博客: > http://blog.csdn.net/gashero > _______________________________________________ > python-chinese > Post: send python-chinese at lists.python.cn > Subscribe: send subscribe to python-chinese-request at lists.python.cn > Unsubscribe: send unsubscribe to python-chinese-request at lists.python.cn > Detail Info: http://python.cn/mailman/listinfo/python-chinese -- http://codeplayer.blogspot.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: http://python.cn/pipermail/python-chinese/attachments/20061110/8c556527/attachment.html
2006年11月10日 星期五 11:48
晕,确实是个严重的问题,谢谢,我以后会注意。 只是从学了编程以来第一次向数据库中存入BLOB字段的数据,有点兴奋,跟大家分享一下。
2006年11月12日 星期日 10:51
gashero 写道: > 晕,确实是个严重的问题,谢谢,我以后会注意。 > 只是从学了编程以来第一次向数据库中存入BLOB字段的数据,有点兴奋,跟大家分享一下。 > _______________________________________________ > python-chinese > Post: send python-chinese在lists.python.cn > Subscribe: send subscribe to python-chinese-request在lists.python.cn > Unsubscribe: send unsubscribe to python-chinese-request在lists.python.cn > Detail Info: http://python.cn/mailman/listinfo/python-chinese 我用python 操作mysql,由于mysql建的库是utf-8,我向其中插入数据时MySQLdb报 告不能转化为utf-8. data = data.decode("GBK").encode("UTF-8") sqlstring = '''insert into rawdata(link,datatype,data) values('%s','%s','%s')''' % (rssurl,type,rssdata) cur.execute(sqlstring) File "C:\Python24\Lib\site-packages\MySQLdb\cursors.py", line 146, in execute query = query.encode(charset) UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 191: ordina l not in range(128)
2006年11月12日 星期日 12:06
> > 我用python 操作mysql,由于mysql建的库是utf-8,我向其中插入数据时MySQLdb报 > 告不能转化为utf-8. > 这样试试: cur.execute('SET NAME GBK') sqlstring = '''insert into rawdata(link,datatype,data) values('%s','%s','%s')''' % (rssurl,type,rssdata) cur.execute(sqlstring) -- http://codeplayer.blogspot.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: http://python.cn/pipermail/python-chinese/attachments/20061112/ae3cc84b/attachment.htm
Zeuux © 2025
京ICP备05028076号