mysql默認的編碼是不支持中文的,需要改成utf8編碼格式。
而我使用的Pomelo.EntityFrameworkCore.MySql組件生成mysql庫和表,他是使用默認編碼的。
網上大多說修改配置文件Character Set=utf8,我這里測試無效。
所以就想到修改mysql的默認編碼。
在mysql安裝目錄下找到my.ini(我這里是這個名字,命名可以修改。只要創建服務的時候指定你自己的配置文件命名就ok)
[client] default-character-set=utf8mb4 [mysqld] basedir=D:\mysql-5.7.25-winx64 datadir=D:\mysql-5.7.25-winx64\data port=3306 character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci # 創建新表時將使用的默認存儲引擎 default-storage-engine=INNODB [mysql] default-character-set=utf8mb4
修改配置文件如上。重啟mysql服務, cmd輸入
net stop mysql && net start mysql
運行程序,重新生成庫和表。
發現無效。生成的編碼格式並不是utf8
執行mysql查詢命令:
show variables like '%char%';
可以發現設置是成功了的。當時就心態就崩了,
然后執行命令手動創建一個庫
create database encodtest
編碼設置是成功了的。
找了好久解決辦法。突然看到一個將mysql服務卸了重裝的辦法,死馬當活馬醫吧!
首先,停止mysql服務
net stop mysql
然后卸載
sc delete mysql
最后進入mysql安裝的bin目錄執行
mysqld install
然后啟動服務
net start mysql
重新運行程序。成功解決。
不知道為什么我的必須要重裝服務。。