Python操作MySQL以及中文亂碼的問題

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()


上面是linux上的腳本,windows下運行正常!


注:MySQL的配置文件設置也必須配置成utf8


設置 MySQL 的 my.cnf 文件,在 [client]/[mysqld]部分都設置默 認的字符集(通常在/etc/mysql/my.cnf):

[client]

default-character-set = utf8

[mysqld]

default-character-set = utf8


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章