问题形容
eclipse我的项目,SSM,前端填写表单(form元素),提交所填写的中文“收货地址”,存到数据库,呈现中文乱码的问题
(数据表中是乱码的,从数据库读到页面上的也是乱码的)
可能
1.eclipse我的项目编码格局(这个预计最影响)
批改eclipse我的项目的编码格局
阐明:Windows下eclipse默认编码为GBK。
留神:如果你不介意我的项目中的中文正文全乱码,能够间接批改。如果介意,倡议从新建一个我的项目,而后用原我的项目的src文件夹和WebContent文件夹笼罩新我的项目的src和WebContent文件夹
2.批改tomcat的server.xml(这个也很重要)
1)用文本编辑器(如记事本),关上tomcat装置目录下conf文件夹下的server.xml
阐明:如果不记得装置门路,能够用everything软件搜寻tomcat-
2)搜寻connectionTimeout="20000"
,加上URIEncoding="UTF-8"
,保留文件。
3.数据库连贯时要写上encoding=UTF8
1)如果你是间接在applicationContext.xml中配置数据源,查看下url的值
即下方的<property name="url" value="jdbc:mysql://localhost:3306/easymall?characterEncoding=utf8"/>
看是否写了characterEncoding=utf8
<!--配置数据源--> <bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/easymall?characterEncoding=utf8"/> <property name="username" value="root"/> <property name="password" value="12345678"/> <!--最大连接数--> <property name="maxTotal" value="30"/> <!--最大闲暇连接数--> <property name="maxIdle" value="10"/> <!--初始化连接数--> <property name="initialSize" value="5"/> </bean>
留神(满腹经纶,踩过坑,所以补充一下,轻喷): 不要写成<property name="url" value="jdbc:mysql://localhost:3306/easymall?useUnicode=true&characterEncoding=utf8"/>
或者<property name="url" value="jdbc:mysql://localhost:3306/easymall?characterEncoding=utf8&useUnicode=true"/>
即不要加上useUnicode=true,否则无奈启动服务器,无法访问页面,如果报错了,倡议翻下console面板中的控制台输入(多往上翻,不要只看最初一块的报错信息)
2)如果你是加载配置文件,则批改配置文件中url的编码
具体参考此文:SSM解决中文存入数据库乱码问题(记录本人的问题)
4.jsp视图加上UTF8(在新建jsp文件时就要留神)
个别在新建jsp时留神改过来就行(个别是ISO-8859-1
文件顶部的pageEncoding设置
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
5.我的项目的web.xml写上一些配置代码(影响不是很大)
留神:filter中的filter-name的值与filter-mapping中filter-name的值统一
<!-- 防止中文乱码 --> <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>
参考
解决springmvc承受前端传来的中文呈现中文乱码状况
SSM解决中文存入数据库乱码问题(记录本人的问题)
IDEA向数据库中插入中文数据乱码问题永恒解决办法