共计 2269 个字符,预计需要花费 6 分钟才能阅读完成。
问题形容
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 向数据库中插入中文数据乱码问题永恒解决办法