Python操作MySQL以及中文乱码的问题
2024-08-25 15:05:54
Python操作MySQL需要安装Python-MySQL
可以从网上搜索一下,和一般的Python包一样安装
安装好之后,模块名字叫做MySQLdb ,在Window和Linux环境下都可以使用,试验了一下挺好用,
不过又发现了烦人的乱麻问题,最后用了几个办法,解决了!
我用了下面几个措施,保证MySQL的输出没有乱麻:
1 Python文件设置编码 utf-8 (文件前面加上 #encoding=utf-8)
2 MySQL数据库charset=utf-8
3 Python连接MySQL是加上参数 charset=utf8
4 设置Python的默认编码为 utf-8 (sys.setdefaultencoding(utf-8)
mysql_test.py
#encoding=utf-8
import sys
import MySQLdb
reload(sys)
sys.setdefaultencoding('utf-8')
db=MySQLdb.connect(user='root',charset='utf8')
cur=db.cursor()
cur.execute('use mydb')
cur.execute('select * from mytb limit 100')
f=file("/home/user/work/tem.txt",'w')
for i in cur.fetchall():
f.write(str(i))
f.write(" ")
f.close()
cur.close()
import sys
import MySQLdb
reload(sys)
sys.setdefaultencoding('utf-8')
db=MySQLdb.connect(user='root',charset='utf8')
cur=db.cursor()
cur.execute('use mydb')
cur.execute('select * from mytb limit 100')
f=file("/home/user/work/tem.txt",'w')
for i in cur.fetchall():
f.write(str(i))
f.write(" ")
f.close()
cur.close()
上面是linux上的脚本,windows下运行正常!
注:MySQL的配置文件设置也必须配置成utf8
设置 MySQL 的 my.cnf 文件,在 [client]/[mysqld]部分都设置默认的字符集(通常在/etc/mysql/my.cnf):
[client]
default-character-set = utf8
[mysqld]
default-character-set = utf8
最新文章
- Qt写Activex插件 总结
- Python-4 变量、字符串
- python import其他文件夹下的模块
- SDAccel-FPGA将带来至多25倍单位功耗性能提升
- CSS入门教程——定位(positon)
- VS2013 编译错误 error: MSB8031
- VS2010/MFC对话框:颜色对话框
- windows安装Apache,注册服务出现“(OS 5)拒绝访问。 : AH00369: Failed to open the WinNT service manager...";错误
- 用SqlBulkCopy批量插入数据 遇到的错误
- Kickstart Practice Round 2017 Google
- [MongoDB] - 数据的增删改操作
- BotVS开发基础—2.5 状态信息显示表格
- LeetCode-391. 完美矩形(使用C语言编译,详解)
- mysql老是停止运行该怎么解决
- 为什么ssh 执行完命令以后 挂了, hang , stop respond
- redis linux版本自定义安装目录、注册服务、自启动设置、一台计算机安装多个redis
- UNIX环境高级编程 第16章 网络IPC:套接字
- Python学习笔记:import sys模块(argv、path、platform、exit)
- Java栈的两种实现
- 关于iOS上使用WWW引起的内存泄漏的临时解决方案