從**上獲取的資訊要儲存在本地
資料庫中,但是儲存的過程中資料庫的資訊都變成了亂碼,怎麼解決呢?客官聽我娓娓道來。
首先,保證以下四項的編碼都是utf-8:
1. **
2. 資料庫連線
3. 表的字符集格式
4. 插入的資料格式
每步的操作如下:
1. 保證**的格式是utf-8,在**最前面加上這句話
# -*- coding:utf8 -*-
#首先用於確定編碼,加上這句
2. 保證資料庫連線格式是utf-8,這麼寫
conn=mysqldb.connect(host='localhost',user='root',passwd='****',db='kfxx',port=3306,charset='utf8')
cur=conn.cursor()
3. 保證表的字符集格式是utf-8,在建表的時候就能設定
4. 保證插入的資料格式是utf-8,分為保證讀取的頁面格式是utf-8和字串格式也是utf-8
#解決亂碼問題
html_1 = urllib2.urlopen(cityurl,timeout=120).read()
mychar = chardet.detect(html_1)
bianma = mychar['encoding']
if bianma == 'utf-8' or bianma == 'utf-8':
html = html_1
else :
html = html_1.decode('gb2312','ignore').encode('utf-8')
chapter_soup = beautifulsoup(html)
city = chapter_soup.find('div',class_ = 'row-fluid').find('h1').get_text()
province = chapter_soup.find('a',class_ = 'province').get_text()
pmnum = chapter_soup.find('div',class_ = 'row-fluid').find('span').get_text()
suggest = chapter_soup.find('div',class_ = 'row-fluid').find('h2').get_text()
rand = chapter_soup.find('div',class_ = 'row-fluid').find('h2').find_next_sibling('h2').get_text()
face = chapter_soup.find('div',class_ = 'span4 pmemoji').find('h1').get_text()
conclusion = chapter_soup.find('h1',class_ = 'review').get_text()
print city.encode('utf-8')
cur.execute('insert into t_pm values(\''+city.encode('utf-8')
+'\',\''+province.encode('utf-8')
+'\',\''+pmnum.encode('utf-8')
+'\',\''+suggest.encode('utf-8')
+'\',\''+rand.encode('utf-8')
+'\',\''+conclusion.encode('utf-8')+'\')')
完成,插入的資料都是中文了,看效果圖:
Mysql 解決插入資料庫亂碼問題
從 上獲取的資訊要儲存在本地資料庫中,但是儲存的過程中資料庫的資訊都變成了亂碼,怎麼解決呢?首先,保證以下四項的編碼都是utf 8 1.2.資料庫連線 3.表的字符集格式 4.插入的資料格式 每步的操作如下 1.保證 的格式是utf 8,在 最前面加上這句話 1 coding utf8 2 首先用於...
中文插入資料庫亂碼
1.在資料插入的 sql語句中加 nstring strsql insert into article body articletitle,articlecontent,articlesummary,articleistop,articleallowreply,articleishide value...
解決插入到MySql資料庫中亂碼問題
大三最後一學期的課程設計了!今天幫同學改錯,系統需要向資料庫裡插入中文字元,我把中問字元和資料庫的編碼都改成utf 8 可是執行insert的sql語句報錯,說是亂碼!找了很久的問題,試了很多其它方法轉換字元格式編碼什麼的!最後在 上看到一句話了 將原來的 jdbc mysql localhost ...