今天把 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
,保存。
注意:
-
創建數據庫時要設置好編碼,如果是使用 Navicat 來操作 MySql ,在創建數據庫時要如圖設置:2018-03-18 22-01-18 的屏幕截圖.png
對應的 SQL 代碼是 :
CREATE DATABASE `database name` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';
- 在 Ubuntu 下使用 Navicat 會出現亂碼,只要修改一下
start_navicat
即可,編輯start_navicat
,找到export LANG="en_US.UTF-8"
,把LANG
部分改為zh_CN.UTF-8
,重新啟動 Navicat 。