解决 Windows命令行 mysql 乱码问题

在 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:           root@localhost
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命令行的字符集不一致导致了乱码问题。
说明:
查看本地Windows命令行字符集编码
1.第一种方法是在cmd命令行界面上通过chcp命令查看
C:\>chcp
Active code page: 936
2.第二种方法是在cmd命令行标题栏右键属性,在弹出对话框(选项->当前代码页<936 (ANSI/OEM - 简体中文GBK)>)内可以看到当前的字符集编码


设置 MySQL 连接字符集

最简单的方式是在连接 MySQL 数据库以后,执行 SET NAMES cp850,或者执行 mysql 时使用 default-character-set=cp850 选项。

你可能感兴趣的:(C++,c,windows,mysql,C#)