总的来说,添加中文到数据库乱码就是编码字符不符合导致。下面分享eclipse与IDEA中解决添加数据库乱码的几个方法!!希望对大家有帮助
一丶查看数据库的默认编码
通过输入密码进入mysql:
输入show variables like 'character%'; 查看mysql 的字符集
安装MySQL数据库时的默认编码是latin1,实际使用时可能要使用其他编码。
二丶修改编码 修改MySQL的配置文件my.ini(windows系统下),位置在安装目录下。
1.在[client]下追加: default-character-set=utf8 2.在[mysqld]下追加: character-set-server=utf8 3.在[mysql]下追加: default-character-set=utf8
最后在重启服务。
上面是查看数据库中的字符集。
我们在实际添加的时候可以查看web.xml中的 配置的解决字符乱码的过滤器是否有用:
这个解决字符乱码的过滤器本人试过有用!
<filter> <filter-name>characterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>characterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
其次,我们还要查看我们数据库中,自己建表时,是否也对应了utf-8这个字符集
我们还可以在properties配置文件中,
这栏:jdbc.url=jdbc:mysql:///数据库名称?useUnicode=true&characterEncoding=utf-8 加入这个useUnicode=true&characterEncoding=utf-8
或者?charactorEncoding=utf8 这两个自己都用过。大概是说我们在获取数据库连接对象的方法没有给我们限制字符集!
最后,我们还可以在tomcat 中的server.xml中设置一下
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />
------------------------------------------------------------------------------------------------------------------------
过了这么多天,有跟大家分享一下在IDEA中添加中文到数据库乱码的问题,万变不离其宗,还是一样的问题:
?useUnicode=true&characterEncoding=utf-8&useSSL=false IDEA中中文乱码!多加了&useSSL=false。本人尝试,有效!!!!
|