关于eclipse:eclipse-SSM项目前端填写表单往数据表存数据中文乱码导致后端显示也乱码

40次阅读

共计 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 向数据库中插入中文数据乱码问题永恒解决办法

正文完
 0