MySQL中文乱码
mysql有六处使用了字符集,分别为:client、connection、database、results、server、system。
client是客户端使用的字符集。
connection是连接数据库使用的字符集类型。如果程序没有指明连接数据库使用的字符集类型就按照服务器端默认的字符集设置。
database是数据库服务器中某个库使用的字符集设定。如果建库时没有指明,将使用服务器安装时指定的字符集设置。
results是数据库给客户端返回时使用的字符集设定。如果没有指明,使用服务器默认的字符集。
server是服务器安装时指定的默认字符集设定。
system是数据库系统使用的字符集设定。
命令行输入:show variables like "char%"; 可以查看字符集设置。
我们平时对数据的操作常修改client、connection和results的编码。
为了能在客户端正确显示查询结果的中文字符,可将返回结果的编码方式设置为gbk。set character_set_results=gbk;其他编码一般用utf-8。
当我们使用jdbc操作mysql数据库,最好在数据库URL后面加上参数useUnicode=true&characterEncoding=UTF-8。
如:jdbc:mysql://localhost:3306/mytest?useUnicode=true&characterEncoding=UTF-8。
注意:参数的编码方式与database的编码方式统一,一般都是用utf-8。