首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 編碼格式全解析:從安裝配置到命令行亂碼解決實戰

     編輯:MySQL 綜合教學

MySQL 編碼格式全解析:從安裝配置到命令行亂碼解決實戰

安裝時配置 utf-8,代碼寫入 UTF-8,但 cmd 查詢顯示亂碼?根因:**MySQL 命令行客戶端默認不支持 UTF-8 顯示**,需臨時切換結果集編碼。本文系統講解字符集變量、配置文件修改、命令行臨時切換、庫/表/列級編碼查看與修改。

一、核心字符集系統變量

二、現象複現與解決

環境

安裝配置 default-character-set=utf8,庫/表/列均為 utf8,Java 寫入 UTF-8 數據。

cmd 查詢亂碼

mysql> SELECT * FROM t_user;
+----+----------+---------------------+
| id | name     | birth               |
+----+----------+---------------------+
| 1  | 寮犱笁0  | 2015-05-03 00:00:00 |  -- 亂碼
...

解決:臨時切換客戶端/結果集為 GBK

mysql> SET NAMES gbk;
mysql> SELECT * FROM t_user;
+----+--------+---------------------+
| id | name   | birth               |
+----+--------+---------------------+
| 1  | 張三0  | 2015-05-03 00:00:00 |  -- 正常
...

原理:Windows 控制台默認編碼為 GBK/CP936,SET NAMES gbk 使 character_set_results=gbk,結果集按 GBK 編碼輸出,控制台正常顯示。

三、持久化配置:修改 my.ini

# my.ini
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci

[client]
default-character-set=utf8

[mysql]
default-character-set=gbk   # 命令行客戶端默認用 GBK 顯示

重啟服務生效。[mysql] 區塊專門控制 mysql 命令行客戶端行為。

四、庫/表/列編碼查看與修改

1. 查看

-- 數據庫
SHOW CREATE DATABASE db_name;
-- 表
SHOW CREATE TABLE tbl_name;
-- 列(隱含在 SHOW CREATE TABLE 輸出中)

2. 修改


						
						
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
變量含義
character_set_client客戶端發送語句的編碼
character_set_connection服務器將客戶端語句轉換為的編碼
character_set_database當前數據庫默認編碼
character_set_results服務器返回結果集的編碼
character_set_server服務器默認編碼
character_set_system系統標識符編碼(恆為 utf8)