电脑技术学习

MySQL乱码问题深层分析

dn001

三、解决方案

了解了 MySQL 4.1.x 以上版本字符集处理的过程,我们就知道了怎么从原理上解决这个问题。

思路:让服务器端和客户端的字符集保持一致。

服务器端的编码是由字符集(Character Set)和校对规则(Collation)决定的。

上面提到,MySQL 中是根据下面几个变量确定服务器端和客户端用的什么字符集:

character_set_client     客户端字符集

character_set_connection   客户端与服务器端连接采用的字符集

character_set_results     SELECT查询返回数据的字符集

character_set_database    数据库采用的字符集

也就是说,只要保证这几个变量采用一致的字符集,就不会出现乱码问题了。

查看系统的字符集用下面的命令:

1mysql>SHOW VARIABLES LIKE 'character_set_%'

2+--------------------------+-----------------------------------------+

3|Variable_name |Value |

4+--------------------------+-----------------------------------------+

5|character_set_client |utf8 |

6|character_set_connection |utf8 |

7|character_set_database |utf8 |

8|character_set_filesystem |binary |

9|character_set_results |utf8 |

10|character_set_server |utf8 |

11|character_set_system |utf8 |

12|character_sets_dir |E:usrMySQL Server 5.0sharecharsets |

13+--------------------------+-----------------------------------------+

148rows in set (0.00sec)15