ssm乱码问题

一、配置springmvc乱码处理

网上说要把这个放在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>

二、连接数据库的配置

加上?useUnicode=true&amp;characterEncoding=UTF-8

jdbc.user=root
jdbc.password=XXXXX
jdbc.jdbcUrl=jdbc:mysql://127.0.0.1:3306/derui?useUnicode=true&amp;characterEncoding=UTF-8

三、修改tomcat中server.xml文件指定的默认编码

这点可以去百度,看更详情的

<Connector port="8080"  protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />

四、修改数据库默认编码

通过     show variables like '%char%';     查看数据库编码,你要保证是以下情况,如果有latin1字符集出现,那你就要去改了。

怎么改?百度“修改mysql数据库字符集”

注意的是,改了要重启mysql,但是,有时候重启也不生效,那只能删库重建指定好utf8字符集才生效

+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| 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                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

五、在过滤器配置

@Override
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
			throws IOException, ServletException {
		request.setCharacterEncoding("utf-8");
		response.setCharacterEncoding("utf-8");
		chain.doFilter(request, response);
	}

六、映射方法中配置

produces = "text/plain;charset=UTF-8"

@RequestMapping(value = "/add", method = RequestMethod.POST,produces = "text/plain;charset=UTF-8")
public String add(){
    return "index";
}

七、配置Maven

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>

 八、设置好jsp页面的编码

<%@ page language="java" contentType="text/html; charset=UTF-8"	pageEncoding="UTF-8"%>

 九、使用getBytes("XX")

我没用过,我学长用的,我顺带整理,一般封装成一个类工具

String str = new String("前端传来的中文字符串数据".getBytes("这里写前端jsp页面的编码,如:iso-8859-1"),"utf-8");

十、有前辈说用序列化把数据写进数据库,然后读出来再进行反序列化

百度,我不懂

 

 

------------------------结束-------------------------------

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值