web项目存数据到数据库,中文乱码,解决过程

排查原因:

打断点,查看到底是在执行存数据库操作之前就已经乱码了,还是存数据库操作后乱码的。

前者解决方案:

在web.xml里面加上:

<filter>
   <filter-name>encodingFilter</filter-name>
   <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
   <async-supported>true</async-supported>
   <init-param:>
      <param-name>encoding</param-name>
      <param-value>UTF-8</param-value>
   </init-param>
</filter>
<filter-mapping>
   <filter-name>encodingFilter</filter-name>
   <url-pattern>/*</url-pattern>
</filter-mapping>
在配置jdbc数据源的时候加上:
jdbc:mysql://127.0.0.1:3306/logistics?useUnicode=true&amp;characterEncoding=UTF-8存数据库操作后乱码,解决方案:登录数据库,执行如下sql:

show variables like ‘character%‘;

结果:

| character_set_client     | utf8                                                   |

| character_set_connection | utf8                                                   |

| character_set_database   | latin1                                                 |

| character_set_filesystem | binary                                                 |

| character_set_results    | utf8                                                   |

| character_set_server     | latin1                                                 |

| character_set_system     | utf8                                                   |

说明在安装数据库的时候,character_set_database,character_set_server编码格式设置错误。

解决:

找到mysql安装路径下的my.cnf文件在[mysqld]下添加如下两行:

character_set_server=utf8 
init_connect=‘SET NAMES utf8‘

再次查看,问题解决:

| character_set_client     | utf8                                                   |

| character_set_connection | utf8                                                   |

| character_set_database   | utf8                                                   |

| character_set_filesystem | binary                                                 |

| character_set_results    | utf8                                                   |

| character_set_server     | utf8                                                   |

| character_set_system     | utf8

时间: 2024-10-27 14:13:00

web项目存数据到数据库,中文乱码,解决过程的相关文章

项目部署到webgoic,中文乱码解决方法

在每个jsp页面头部加上: <%@page language="java"  contentType="text/html; charset=utf-8" pageEncoding="UTF-8"%> web.xml加上: <!-- weblogic部署中文乱码 --> <mime-mapping> <extension>html</extension> <mime-type>

oracle数据库中文乱码解决办法

登录数据库显示乱码 原因是数据库的客户端和服务端的字符集不同 查出服务端的字符集 SQL> select userenv('language') from dual; USERENV('LANGUAGE') ---------------------------------------------------- SIMPLIFIED CHINESE_CHINA.AL32UTF8 客户端字符集的构成与设定.客户端的字符集是由当前用户的环境变量NLS_LANG设定的. 故在环境变量中设定与服务器端相

Linux下Tomcat向MySQL插入数据中文乱码解决办法

Linux下Tomcat向MySQL插入数据中文乱码解决办法 一.问题 在windows上面使用eclipse开发的项目在windows上面运行一切正常,部署到腾讯云时出现向MySQL数据库中插入数据是中文乱码 二.解决办法 1.尝试一直接在linux上面使用insert语句插入中文,正常2.尝试二在tomcat配置文件server.xml中加入useBodyEncodingForURI="true",不行3.尝试三在tomcat配置文件server.xml中再加入URIEncodin

Oracle数据库中文乱码问题

最近碰到Oracle乱码问题,刚开始甚是头疼,以前在合肥出差的时候,这种问题也碰到过,当时直接抛给了“乌压压一片”(一个搞数据的同事儿),这次没办法躲过,只好硬着头皮上.虽然我这次碰到的是Oracle乱码问题中的一个,但是我决定将这个乱码问题整理清楚(不整清楚,就觉得身边有个定时炸弹,怕下次整数据库的时候会突然又爆炸). 解决这个问题的关键在于理解字符集的概念,所以在正文开始之前,有必要先提一下字符集的相关知识!(这部分知识,对于解决j2ee中文参数传递过程中出现的乱码,也非常具有参考意义) 一

玩转web之ajax(一)---使用表单的serialize()方法中文乱码解决

有时候我们需要使用ajax提交去提交form的值,这样就需要使用serialize()去获取form的值,但这样获取的值如果有中文,会乱码,原因和解决方法如下: 原因:.serialize()自动调用了encodeURIComponent方法将数据编码了 解决方法:调用decodeURIComponent(XXX,true);将数据解码 如: var data=$('#addf').serialize(); data= decodeURIComponent(data,true); 玩转web之a

在web项目下注册MySQL数据库驱动失败

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571) at java.lang.Class.f

[转]mysql导入导出数据中文乱码解决方法小结

本文章总结了mysql导入导出数据中文乱码解决方法,出现中文乱码一般情况是导入导入时编码的设置问题,我们只要把编码调整一致即可解决此方法,下面是搜索到的一些方法总结,方便需要的朋友. linux系统中 linux默认的是utf8编码,而windows是gbk编码,所以会出现上面的乱码问题. 解决mysql导入导出数据乱码问题 首先要做的是要确定你导出数据的编码格式,使用mysqldump的时候需要加上--default-character-set=utf8, 例如下面的代码: 代码如下: mys

python读取数据库中文乱码问题

今天朋友遇到过怪问题,在同一个页面显示的2条中文记录一个正常,一个乱码,2条记录分别从不同的表里取出.录入的时候采用直接录入.仔细观察2者区别,发现能正常显示的字段在表中类型为nvarchar,不能的是varchar,试着将其改成nvarchar,问题解决. 因为对sqlserver不熟悉.通过查询手册得知: nvarchar表示以Unicode格式存储可变长度的 数据,所以能显示中文,而varchar是用非unicode存储数据,所以乱码.将Varchar类型设置为nvarchar类型,发现问

java项目连接数据库(oracle)中文乱码问题解决方法

今天写了一个java项目连接数据库,之后写了一个执行入库操作的模块.此时暴露出一个问题就是项目的中文插入到数据库时会是乱码: 项目输出的中文: 执行插入操作后数据库中内容: 此时CustomerNumber字段是乱码. 出现这种情况一般都是数据库编码与项目编码不一致导致的,首先查看项目与数据库的编码格式: 查看项目编码: 项目的编码是gbk格式 查看数据库编码格式: 数据库编码格式是ISO-8859-1 以上查看编码格式操作可以百度 出现这种情况一般可以通过两种方式解决.一是修改数据库或者项目的