下面講講關于Flask項目MySQL輸入Emoji表情出現Bug解決方案,文字的奧妙在于貼近主題相關。所以,閑話就不談了,我們直接看下文吧,相信看完Flask項目Mysql輸入Emoji表情出現Bug解決方案這篇文章你一定會有所受益。
創(chuàng)新互聯公司專注為客戶提供全方位的互聯網綜合服務,包含不限于網站建設、成都網站建設、桂陽網絡推廣、微信小程序開發(fā)、桂陽網絡營銷、桂陽企業(yè)策劃、桂陽品牌公關、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;創(chuàng)新互聯公司為所有大學生創(chuàng)業(yè)者提供桂陽建站搭建服務,24小時服務熱線:18982081108,官方網址:aaarwkj.com
Bug背景
之前在寫Flask入門項目Flask Mega項目的時候,一直都是用SQLite,后面切換到Mysql數據庫發(fā)現在存入一些EMOJI表情符號的時候,會出現如下的報錯。
Bug解決思路
剛開始覺得應該是數據庫的編碼的問題,因為之前也遇到數據庫存入特殊符號的時候發(fā)生報錯。那先查看云服務器上面的數據庫編碼格式。
show variables like '%char%';
通過查看數據庫編碼發(fā)現都是utf8格式。然后查閱有關的資料,以及翻閱之前做過的筆記發(fā)現,Mysql中的utf8編碼格式最多支持最多3字節(jié)的數據,而emoji表情字符是4個字節(jié)的字符,如果采用utf8的數據庫插入表情字符,就會因為被截斷導致無法存入到數據庫。
Bug解決過程
大概理解了原理就好辦了,修改數據庫的編碼格式,因為我是使用的是Mariadb數據庫
我修改的是/etc/my.cnf,/etc/my.cnf.d/目錄下的配置文件,大概修改有這幾項內容:
[client] default-character-set = utf8mb4 [mysql] default-character-set = utf8mb4 [mysqld] character-set-client-handshake = FALSE character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci init_connect=’SET NAMES utf8mb4’
然后重啟mariadb數據庫,進入數據庫中查看是否修改成功:
修改成功,然后接著修改數據庫和表的編碼格式:
alter database database_name character set 'utf8mb4' collate 'utf8mb4_general_ci';
表格編碼格式:
alter table table_name convert to character set 'utf8mb4' collate 'utf8mb4_general_ci';
查看是否修改成功:
修改成功?。?!
重啟項目然后再次寫入帶有Emoji表情符號的評論到數據庫中,發(fā)現還是出現了問題,重新梳理了一下思路大概是因為Flask項目中的SQLAlchemy連接Mysql的編碼格式錯誤,重新修改了一下連接數據庫的編碼格式:
再次重啟項目重新發(fā)布評論:
對于以上Flask項目Mysql輸入Emoji表情出現Bug解決方案相關內容,大家還有什么不明白的地方嗎?或者想要了解更多相關,可以繼續(xù)關注我們的行業(yè)資訊板塊。
名稱欄目:Flask項目Mysql輸入Emoji表情出現Bug解決方案
網頁鏈接:http://aaarwkj.com/article34/jpohse.html
成都網站建設公司_創(chuàng)新互聯,為您提供企業(yè)網站制作、動態(tài)網站、面包屑導航、ChatGPT、用戶體驗、
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯