数据库:mysql字符集说明

数据库:mysql字符集说明

Scroll Down

12.jpg

一、mysql中涉及的几个字符集

Ø character-set-server/default-character-set:服务器字符集,默认情况下所采用的。

Ø character-set-database:数据库字符集。

Ø character-set-table:数据库表字符集。

优先级依次增加。所以一般情况下只需要设置character-set-server,而在创建数据库和表时不特别指定字符集,这样统一采用character-set-server字符集。

Ø character-set-client:客户端的字符集。客户端默认字符集。当客户端向服务器发送请求时,请求以该字符集进行编码。

Ø character-set-results:结果字符集。服务器向客户端返回结果或者信息时,结果以该字符集进行编码。

Ø character_set_connection 连接字符集。

在客户端,如果没有定义character-set-results,则采用character-set-client字符集作为默认的字符集。所以只需要设置character-set-client字符集。要处理中文,则可以将character-set-server和character-set-client均设置为GB2312,如果要同时处理多国语言,则设置为UTF8。

二、解决乱码问题

通常乱码问题是因为字符集不统一而造成的。通常字符character-set-server、character-set-client、character_set_connection需要统一

三、修改默认字符集

1、 最简单的修改方法,就是修改mysql的my.ini文件中的字符集键值,
如 default-character-set = utf8
character_set_server = utf8
修改完后,重启mysql的服务,service mysql restart
使用 mysql> SHOW VARIABLES LIKE 'character%';查看,发现数据库编码均已改成utf8
+--------------------------+---------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | D:"mysql-5.0.37"share"charsets" |
+--------------------------+---------------------------------+

2、 还有一种修改字符集的方法,就是使用mysql的命令
mysql> SET character_set_client = utf8 ;

init_connect='SET NAMES utf8'