python mysql模块内存泄露和中文乱码解析

python mysql模块内存泄露和中文乱码解析,第1张

概述python mysql模块内存泄露中文乱码解析 对python这个高级语言感兴趣的小伙伴,下面一起跟随内存溢出 jb51.cc的小编两巴掌来看看吧!

MysqL-python的连接时,默认大家会写成
 

@H_502_3@con=MysqLdb.connect(user='xxx',passwd='xxx',host='xxx',port=6600,charset='gbk')

一旦指定了"gbk",默认MysqL-python会设定use_unicode=True。结果是MysqL-python会利用python自己的 codec模块去做字符解码工作,但实际中发现MysqL库gbk编码字符集比python的gbk编码集大。一些在MysqL里可以存储的字符,拿 python的codec去解析就会抛错。更严重的问题是,在MysqL-python1.2.3之前,use_unicode=True即让 MysqL-python解码这块存在内存泄露的BUG。解码出来所有数据库字符串经过MysqL-python出来都是unicode object,要输出到文件需要再次编码。

解决方法是强制指定use_unicode=False。即:
 

@H_502_3@con=MysqLdb.connect(user='xxx',charset='gbk',use_unicode=False)

这样既不会有内存泄露,也不需要在输出文件时进行编码。也回避了python的codec不能解析MysqL gbk里面存放的字符串的问题。 最后对于MysqL4,我们可以将charset参数留空:

@H_502_3@con=MysqLdb.connect(user='xxx',use_unicode=False)

这样就完美解决了这个问题,哈哈

总结

以上是内存溢出为你收集整理的python mysql模块内存泄露和中文乱码解析全部内容,希望文章能够帮你解决python mysql模块内存泄露和中文乱码解析所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/langs/1199906.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-04
下一篇2022-06-04

发表评论

登录后才能评论

评论列表(0条)

    保存