Java UTF-8在Tomcat的SpringWeb应用程序中不工作,Jetty中一切正常
我有一张这样的表格:Java UTF-8在Tomcat的SpringWeb应用程序中不工作,Jetty中一切正常,java,spring,spring-mvc,utf-8,Java,Spring,Spring Mvc,Utf 8,我有一张这样的表格: <form method="post" accept-charset="utf-8"> <fieldset> <legend>Send a Message To Future</legend> <label for="fullName">Your Name:</label> <input type="text" name="fullName"
<form method="post" accept-charset="utf-8">
<fieldset>
<legend>Send a Message To Future</legend>
<label for="fullName">Your Name:</label>
<input type="text" name="fullName" id="fullName">
<br/>
<label for="message">Your Message:</label>
<textarea name="message" rows="3" id="message" style="width: 400px"></textarea>
<br/>
<button type="submit" class="btn">Submit</button>
</fieldset>
</form>
在web.xml中,我有:
<page-encoding>UTF-8</page-encoding>
当我发布诸如“ğ”之类的字符时,如果应用程序部署到Tomcat,我会看到奇怪的字符。但如果我经营码头,一切都很好
Tomcat的server.xml具有:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8" />
我错过了什么
我用Tomcat 7和8都试过了。为
web.xml
@M.Deinum-Ah中的请求添加CharacterEncodingFilter
。谢谢。我都快疯了。但是为什么码头没有问题呢?只使用Tomcat?不知道,不同的服务器、不同的实现、不同的默认值、配置等等。实际上,有可能,一切都是正确的,但System.out.println()的做法不同。在控制台输出中,我也没有看到特殊字符。但在数据库中,这是正确的。当我从数据库中获取它并在带有UTF-8编码的HTML页面上使用它时,它也是可以的。@M.Deinum您可以提供它作为答案以便我可以接受吗?为您的web.xml
@M.Deinum Ah中的请求添加CharacterEncodingFilter
。谢谢。我都快疯了。但是为什么码头没有问题呢?只使用Tomcat?不知道,不同的服务器、不同的实现、不同的默认值、配置等等。实际上,有可能,一切都是正确的,但System.out.println()的做法不同。在控制台输出中,我也没有看到特殊字符。但在数据库中,这是正确的。当我从数据库中获取它并在带有UTF-8编码的HTML页面上使用它时,它也可以。@M.Deinum您能提供它作为答案让我接受吗?
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "biz.tugay.forFuture.web")
public class ServletConfigClass extends WebMvcConfigurerAdapter {
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver resolver =
new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/views/");
resolver.setSuffix(".jsp");
resolver.setExposeContextBeansAsAttributes(true);
return resolver;
}
@Override
public void configureDefaultServletHandling(
DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
}
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8" />