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

MySQL 中文亂碼問題的根因分析與解決方案

     編輯:MySQL 綜合教學

前言

MySQL 中文識別問題一直是開發者的痛點。本文記錄作者在使用 WampServer 環境下,歷經一夜摸索後找到的有效解決方案,並分析為何修改配置檔無效、為何必須在建立資料庫時指定字元集。

問題背景

直接安裝 WampServer 後,在 my.ini 找不到對應的字元編碼配置。嘗試透過命令列設定:

SET character_set_server = gbk;        -- 設定伺服器字元編碼【1】
SET character_set_database = gbk;      -- 設定資料庫字元編碼【2】
show variables like 'character%';      -- 查詢所有字元編碼【3】

重啟 MySQL 後發現設定並未生效,新增資料仍無法識別中文。

有效解決方案:建庫時指定字元集

最終發現,在建立資料庫時直接指定字元集為 gbk 可完美相容中文:

create database 資料庫名 character set gbk;  -- 【4】

深度分析

MySQL 客戶端預設不識別 utf-8,若在建庫、建表時未明確指定字元集,會沿用預設的 latin1,導致中文存入時發生編碼轉換錯誤,產生亂碼。雖然也可修改預設配置,但在團隊協作中容易遺漏,最穩妥的做法是在建立資料庫與資料表時顯式指定字元集。

常用指令總結

SET character_set_server = gbk;
SET character_set_database = gbk;
show variables like 'character%';
create database 資料庫名 character set gbk;
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved