在 Windows 指令行下使用 mysql 工具往往會出現亂碼問題,這是因為 MySQL 伺服器預設使用 latin1 或 utf8 字元集,而 Windows 指令行的字元集是 cp850,本文講解解決 Window 指令行 mysql 亂碼問題。
2008-04-11 12:00:00
解決 Window 指令行 mysql 亂碼問題
在 Windows 指令行下使用 mysql 工具往往會出現亂碼問題,這是因為 MySQL 伺服器預設使用 latin1 或 utf8 字元集,而 Windows 指令行的字元集是 cp850,本文講解解決 Window 指令行 mysql 亂碼問題。
更糟的是,在 Windows 指令行下執行 INSERT UPDATE 指令插入資料時,當你再使用如 phpmyadmin 工具檢視時,将會無法正常顯示。
檢視 MySQL 伺服器使用的編碼
使用 mysql 工具連接配接後,執行 \s 或 status,将顯示 MySQL 伺服器資訊:
mysql> \s
--------------
C:\Program Files\MySQL\MySQL Server 5.0\bin\mysql.exe Ver 14.12 Distrib 5.0.18,
for Win32 (ia32)
Connection id: 25
Current database:
Current user: [email protected]
SSL: Not in use
Using delimiter: ;
Server version: 5.0.18-nt
Protocol version: 10
Connection: localhost via TCP/IP
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
TCP port: 3306
Uptime: 1 hour 1 min 27 sec
Threads: 3 Questions: 259 Slow queries: 0 Opens: 0 Flush tables: 1 Open tab
les: 0 Queries per second avg: 0.070
--------------
Conn. characterset 表示的是連接配接使用的字元集,正是因為連接配接字元集與Windows指令行的字元集不一緻導緻了亂碼問題。
[color=red]說明:
檢視本地Windows指令行字元集編碼
1.第一種方法是在cmd指令行界面上通過chcp指令檢視
C:\>chcp
Active code page: 936
2.第二種方法是在cmd指令行标題欄右鍵屬性,在彈出對話框(選項->目前代碼頁<936 (ANSI/OEM - 簡體中文GBK)>)内可以看到目前的字元集編碼[/color]
設定 MySQL 連接配接字元集
最簡單的方式是在連接配接 MySQL 資料庫以後,執行 SET NAMES cp850,或者執行 mysql 時使用 default-character-set=cp850 選項。