Ubuntu 14.04 mysql 5.5 python 2.7python
從網頁爬取數據存入數據庫顯示亂碼mysql
報錯:1067錯誤sql
從新修改配置文件,將找到[mysqld]下的default-character-set=utf8改成數據庫
character-set-server=utf8,5.5版本必須這麼寫.ubuntu
從數據庫查詢中文出現亂碼vim
可能狀況:python2.7
1. mysql數據庫各項沒有設置編碼,默認爲'latin'fetch
2.使用MySQL.connect的時候沒有設置默認編碼編碼
3.沒有設置python的編碼,python2.7默認爲'ascii'rest
4.沒有解碼
---
解決方法:
1.設置mysql的編碼
ubuntu執行下列語句:
** sudo vim /etc/mysql/my.cnf **
而後在裏面插入語句:
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
退出 vim
從新啓動mysql:
** sudo service mysql restart **
2.在code中設置MySQLdb的鏈接編碼參數
db=MySQLdb.connect(user='...',db='...',passwd='...',host='...',charset='utf8')
3.在code中設置python默認編碼
# -*-coding:utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
4.記得要解碼
t = cursor.fetchall()
s = t[0][1].decode('utf-8')