我如何在我的webapp中修复损坏的编码?

时间:2012-11-17 08:55:59

标签: eclipse jsp maven spring-mvc

当我在我的网络应用程序中提交表单时,一些字符(例如德语umlauts)在进入我的控制器时就会被破坏。像üäö这样的字符串就像üäö一样。我该如何解决这个问题?

我的设置如下:

  • spring mvc 3.1.2
  • maven 3.0.4或2.2.1(同时尝试过)
  • tomcat 7.0.x
  • eclipse(sts 3.1.0)
  • windows 8

基于我已经在stackoverflow上找到的答案,我试过了以下事情。

将这些行添加到jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
...
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

pom.xml中的spcified编码:

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
...

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
        <encoding>UTF-8</encoding>
    </configuration>
<plugin>
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <configuration>
        <encoding>UTF-8</encoding>
    </configuration>
<plugin>

将eclipse中的编码更改为UTF-8。

在调查我观察到的问题时。

  • 当我右键单击项目中的文件(资源和java文件)并检查指定的编码时,它表示UTF-8。
  • 当我以jsps(f.e。<p>öäü</p>)输出这些字符时,它们会在浏览器中正确显示。
  • Windows和Linux中存在问题。
事先得到你的答案。

更新

通过将CharacterEncodingFilter添加到我的web.xml

来解决我的问题

2 个答案:

答案 0 :(得分:0)

查看$ TOMCAT_HOME / conf / server.xml文件并检查编码设置:

<Connector port="8080" ... URIEncoding="UTF-8" />

看来Tomcat需要UTF-8的这个设置来处理HTTP请求值,比如你的GET表单提交中的请求参数(也可能是POST)。

答案 1 :(得分:0)

每当出现有关字符编码的问题时,我都会使用字符的UNICODE表示来修复它们。目前我只尝试使用韩语和德语字母。