1

我正在使用 Spring Portlet MVC 3.02 构建 Portlet,并将它们部署在 WebSphere Portal V7 上。我有一个表单提交,其中一个组合框需要发送一个西班牙语字符。像这样的东西:

<form:select id="${ns}imTheField" path="imTheField" cssStyle="width:120px;">
    <option value="AtTheEndTheresASpanishCharacterÑ">
        AtTheEndTheresASpanishCharacterÑ
    </option>                                                   
</form:select>

“Ñ”字符在屏幕上看起来不错。imTheField该组合值通过 Spring Binding 过程映射到命令属性。在表单提交和处理程序方法中,这是我在记录该命令属性时得到的:

theCommand.getImTheField: AtTheEndTheresASpanishCharacterÃ

这不是来自表格的字符。这给我带来了麻烦,因为当表单提交出现错误时,我必须使用以前的值再次显示表单,而现在我没有因为这个问题。

有任何想法吗?这是我在提交表单时从 Chrome 调试中得到的:

Request Headers
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:es

Form Data
imTheField:AtTheEndTheresASpanishCharacterÑ

Response Headers
Content-Language:es
Content-Type:text/html; charset=UTF-8

请注意,该字段的imTheField格式看起来很好。也许是Accept-Charset请求标头的问题?

4

1 回答 1

0

见: http: //floatingcube.blogspot.co.uk/2008/10/special-characters-in-spring-mvc.html

您可能需要使用过滤器,因为 spring 使用的是 ISO-8859-1 而不是 UTF-8

于 2013-06-04T10:43:33.343 回答