插入数据库乱码问题

最近做了一个小项目,使用c3p0来连接数据库,当更新数据库时,中文的数据竟然变成了乱码

什么鬼?开始检查问题!!!

1.查看jsp页面,已经设置成了pageEncoding="utf-8”。

        jsp页面没问题

2.查看servlet,request,response均已经设置,好奇怪啊什么问题呢?

插入数据库乱码问题_第1张图片

3.查看数据库默认的是gbk,查看是否设置编码utf-8

插入数据库乱码问题_第2张图片

数据库属性:

插入数据库乱码问题_第3张图片

4,。都没有问题,哪里出错了呢?,来测试一下

    插入数据库乱码问题_第4张图片

看到没中文是可以的!

来个测试类

插入数据库乱码问题_第5张图片

更新成功了,可是数据库还是乱码那么问题只能出在数据库连接上了。

打开c3p0文件


 
 	 
 	 	 
   		com.mysql.jdbc.Driver
   		jdbc:mysql:///oldman
   		root
   		123456
   		  
        30000  
        30  
        10  
        30  
        100  
        10  
        200  
   	 
   
此处应该设置编码格式(表名后面加?以及 要使用&的转义字符也就是&,否则会报错):
jdbc:mysql:///oldman?useUnicode=true&characterEncoding=utf-8

再来测试一下:

插入数据库乱码问题_第6张图片

乱码没了,哈哈,终于解决了。

总结:

此局代码有何作用呢?

useUnicode=true&characterEncoding=utf-8

1.指定字符的编码、解码格式

    例如:数据库采用gbk,项目数据库用的是utf-8

            1.存数据时,数据库在存放项目数据的时候会先用UTF-8格式将数据解码成字节码,然后再将解码后的字节码重新使用GBK编码存放到数据库中。

            2.取数据时,数据库会先将数据库中的数据按GBK格式解码成字节码,然后再将解码后的字节码重新按UTF-8格式编码数据,最后再将数据返回给客户端。


你可能感兴趣的:(插入数据库乱码问题)