1. 程式人生 > 資料庫 >MySQL無法儲存emoji表情解決方案分析

MySQL無法儲存emoji表情解決方案分析

本文例項講述了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資料庫計有所幫助。