MySQL数据库的字符集问题

  经常碰到用户询问,虚拟主机提供的MySQL数据库系统的编码是什么,因为他(她)的程序出现了乱码。其实系统默认采用什么编码无关紧要,完全可以通过自己的设置来改变这个默认的行为。

  对于数据库的编码,可以通过以下语句来修改:

ALTER DATABASE 数据库名称 DEFAULT CHARACTER SET '字符集名称'

示例:

ALTER DATABASE test  DEFAULT CHARACTER SET 'utf8'

  改变了数据库的编码之后,在JDBC url中还要指定useUnicode和characterEncoding这两个参数。useUnicode要设置为true,characterEncoding要设置为你要使用的编码。

示例:

url="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8"

 

  至此,数据库就不会出现乱码了。当然,由于程序页面编码问题等导致数据本身已经乱码的情况不在本文的是说明范围。