jsp中的表单返回windows-1252中的文本

时间:2016-01-21 18:29:57

标签: java jsp spring-mvc encoding

页面上的所有数据都正确显示。文本,退出数据库,包括。但是当提交表单时,控制器会出现在文本窗口中 - 1252。

在jsp编码中指定。

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>

也适用于表格。

<form:form method="POST" action="/event" modelAttribute="message" acceptCharset="UTF-8">

在web.xml中过滤

<filter>
    <filter-name>encoding-filter</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>encoding-filter</filter-name>
    <url-pattern>*</url-pattern>
</filter-mapping>

可能是什么问题?

1 个答案:

答案 0 :(得分:1)

如果CharacterEncodingFilter不是第一个,则会出现此问题。在我的情况下,它应该归咎于spring security。在所有配置从java config移至xml并在过滤器spring security之前设置CharacterEncodingFilter之后,数据开始以正确的编码进行。