解決寫入中文數據到 MySql 時變成 ????

今天把 Java 項目的開發環境從 Windows 轉到 Ubuntu 中來,突然發現把一些中文數據寫入數據庫后變成 ???? (通過 MySql 命令行直接執行 SQL 命令沒有問題),在 Windows 中時還好好的,真是百思不得其解。 然后一頓 Google ,又是修改代碼,又是通過命令修改數據庫的編碼,最后還是不行。 最終才發現需要在 MySql 的配置文件中設置編碼,修改如下:

  • /etc/mysql/mysql.conf.d/目錄下找到mysqld.cnf,以 root 方式編輯,在[mysqld]下方添加一條character-set-server=utf8 ,保存。

  • /etc/mysql/conf.d/目錄下找到mysql.cnf,以 root 方式編輯,在[mysqld]下方添加一條default-character-set=utf8,保存。

注意:

  1. 創建數據庫時要設置好編碼,如果是使用 Navicat 來操作 MySql ,在創建數據庫時要如圖設置:
    2018-03-18 22-01-18 的屏幕截圖.png

    對應的 SQL 代碼是 :

CREATE DATABASE `database name` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';

  1. 在 Ubuntu 下使用 Navicat 會出現亂碼,只要修改一下 start_navicat即可,編輯start_navicat,找到export LANG="en_US.UTF-8",把LANG部分改為zh_CN.UTF-8,重新啟動 Navicat 。
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容