日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Mysql解决微信特殊符号昵称入库报错乱码

發布時間:2024/1/8 数据库 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Mysql解决微信特殊符号昵称入库报错乱码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Mysql解決微信特殊符號昵稱入庫報錯亂碼

目錄:

  • Mysql解決微信特殊符號昵稱入庫報錯亂碼
    • 環境聲明
    • 思考亂碼原因
    • 怎么解決
      • 解決自己代碼和微信編碼統一
      • 解決代碼傳輸到數據庫,序列化反序列化問題
      • 解決數據庫編碼級
      • 上圖,我這邊實現的效果

環境聲明

Mysql5.7

思考亂碼原因

  • 自己代碼和微信編碼不統一
  • 自己代碼傳輸到數據庫序列化,到數據庫反序列化編碼不統一
  • 數據庫接受到數據庫后存入數據庫亂碼(數據庫反序列化和數據庫編碼級不統一)
  • 怎么解決

    解決亂碼唯一手段,保證編碼統一

    解決自己代碼和微信編碼統一

    保證代碼操作序列化微信返回參數和微信編碼統一(默認utf-8),這部分問題,可以通過斷點,日志輕松排查出來

    解決代碼傳輸到數據庫,序列化反序列化問題

  • 設置mysql 連接url 千萬帶 characterEncoding=UTF-8
    • 錯誤例子:

      datasource:master:url: jdbc:mysql://XX/demo-database?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false
    • 原因: 特殊表情需要utf8mb4,你這樣設置會讓數據庫客戶端代碼,認可是utf-8,入庫特殊符號就會亂碼

  • 如果url連接不設置默認的序列化類型,那具體序列化應該用那個類型,這個我們可以在數據庫設置
  • 打開數據庫 vim /etc/my.conf, 添加如下內容

    # 設置客戶端序列化默認編碼級 [client] default-character-set = utf8mb4 # 設置mysql默認編碼級 [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'
  • 注意: 設置完記得重啟數據庫systemctl restart mysqld,根據自己安裝類型,重啟,指令只是在centos7,yum安裝mysql重啟方法

    解決數據庫編碼級

    新建數據庫保證數據庫編碼級是 utf8mb4
    通過以上手段,保證數據編碼一致,可以解決微信特殊符號昵稱亂碼問題

    上圖,我這邊實現的效果

    總結

    以上是生活随笔為你收集整理的Mysql解决微信特殊符号昵称入库报错乱码的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。