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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

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

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

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

目錄:

  • Mysql解決微信特殊符號昵稱入庫報錯亂碼
    • 環(huán)境聲明
    • 思考亂碼原因
    • 怎么解決
      • 解決自己代碼和微信編碼統(tǒng)一
      • 解決代碼傳輸?shù)綌?shù)據(jù)庫,序列化反序列化問題
      • 解決數(shù)據(jù)庫編碼級
      • 上圖,我這邊實(shí)現(xiàn)的效果

環(huán)境聲明

Mysql5.7

思考亂碼原因

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

    解決亂碼唯一手段,保證編碼統(tǒng)一

    解決自己代碼和微信編碼統(tǒng)一

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

    解決代碼傳輸?shù)綌?shù)據(jù)庫,序列化反序列化問題

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

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

  • 如果url連接不設(shè)置默認(rèn)的序列化類型,那具體序列化應(yīng)該用那個類型,這個我們可以在數(shù)據(jù)庫設(shè)置
  • 打開數(shù)據(jù)庫 vim /etc/my.conf, 添加如下內(nèi)容

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

    解決數(shù)據(jù)庫編碼級

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

    上圖,我這邊實(shí)現(xiàn)的效果

    總結(jié)

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

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。