java方面

1.在url连接参数后面添加数据

 jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8

    该参数的作用是:指定字符的编码、解码格式。
       例如:mysql数据库用的是gbk编码,而项目数据库用的是utf-8编码。
       这时候如果添加了useUnicode=true&characterEncoding=UTF-8 ,
       那么作用有如下两个方面:
       1. 存数据时:
           数据库在存放项目数据的时候会先用UTF-8格式将数据解码成字节码,
           然后再将解码后的字节码重新使用GBK编码存放到数据库中。
       2.取数据时:
           在从数据库中取数据的时候,数据库会先将数据库中的数据按GBK格式解码成字节码,
           然后再将解码后的字节码重新按UTF-8格式编码数据,最后再将数据返回给客户端。

2.request response 设置的编码设置成utf-8形式

 request.setCharacterEncoding("utf-8");
 response.setContentType("text/html;charset=utf-8");


mysql方面:

创建数据库时候要指定UTF-8编码 

create database (数据库名字) default character set='utf8';   注意utf8中间没有 -

设置完成以上两步 程序插入中文和读取中文都没有问题了,
但是:接下来的问题是 有些同学插入的数据是中文 但是 select语句一执行 就出先现???
别着急 那是因为mysql终端数据显示编码不一致,在 mysql -uroot -p 进入mysql执行

set names "utf8";

至此乱码问题解决

   windows下把以上utf-8改成gbk 即可