.NET (C#/VB.NET) 通過 MySQL Connector/NET 操作 MySQL 時,中文亂碼通常源於「連線字符集」、「資料庫/表字符集」、「配置文件預設字符集」三者不一致。按以下三步統一為 UTF-8,徹底根治。
[client] default-character-set=utf8 [mysqld] character_set_server=utf8 collation_server=utf8_general_ci
重啟 MySQL 服務生效。
編輯 data/performance_schema/db.opt:
default-character-set=utf8 default-collation=utf8_general_ci
-- 建庫指定 CREATE DATABASE mydb CHARACTER SET utf8 COLLATE utf8_general_ci; -- 修改現有庫 ALTER DATABASE mydb CHARACTER SET utf8 COLLATE utf8_general_ci; -- 建表指定 CREATE TABLE t (c VARCHAR(50)) CHARACTER SET utf8 COLLATE utf8_general_ci; -- 修改現有表 ALTER TABLE t CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
Server=localhost;Database=mydb;Uid=root;Pwd=xxx;Charset=utf8;SslMode=none;
Charset=utf8 強制連線層使用 UTF-8,覆蓋 Server 端設定。SslMode=none 避免 SSL 握手延遲(內網環境)。INSERT INTO t VALUES ('測試')SELECT * FROM t,檢查 DataTable/Reader 取出的字串。Console.OutputEncoding = Encoding.UTF8。三步統一字符集鏈路,.NET 操作 MySQL 中文零障礙。