天天看点

解决 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: [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 选项。