MySQL無法儲存emoji表情解決方案分析
阿新 • • 發佈:2020-01-09
本文例項講述了MySQL無法儲存emoji表情解決方案。分享給大家供大家參考,具體如下:
今天學習爬蟲爬伯樂線上的文章,由於在文章中有emoji表情,導致有emoji表情的文章都爬取不下來
經過一番搜尋之後終於解決了問題。
相關文章可參考:
①. MySQL無法儲存Emoji表情問題
②. mysql存emoji表情報錯處理
1. 在navicat中
如果在新建表之前就改變資料庫的編碼,建表的時候好像可以自己轉變過來吧
檢視字符集編碼:
show variables like '%char%';
更改資料庫編碼:
ALTER DATABASE 資料庫名 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
更改表編碼:
ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
下面這些,好像沒用到,要是不行也可以用用
set @@character_set_client='utf8mb4'; set @@character_set_connection='utf8mb4'; set @@character_set_results='utf8mb4'; set @@character_set_server='utf8mb4';
2. 在爬蟲程式碼中
class MysqlPipeline(object): def __init__(self): self.conn = MySQLdb.connect('127.0.0.1','root','article_spider',charset='utf8mb4',use_unicode=True) self.cursor = self.conn.cursor() def process_item(self,item,spider): insert_sql = ''' insert into article(title,url,bookmark_nums,url_object_id,content) VALUE (%s,%s,%s) ''' self.cursor.execute(insert_sql,(item['title'],item['url'],item['bookmark_nums'],item['url_object_id'],item['content'])) self.conn.commit()
更多關於MySQL相關內容感興趣的讀者可檢視本站專題:《MySQL儲存過程技巧大全》、《MySQL常用函式大彙總》、《MySQL日誌操作技巧大全》、《MySQL事務操作技巧彙總》及《MySQL資料庫鎖相關技巧彙總》
希望本文所述對大家MySQL資料庫計有所幫助。