我正在使用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>
“Ñ”字符在屏幕中看起来不错。该组合值通过Spring Binding进程映射到命令属性imTheField
。在表单提交之后和处理程序方法中,这是我在记录该命令属性时得到的结果:
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
请求标头的问题?
答案 0 :(得分:0)
请参阅:http://floatingcube.blogspot.co.uk/2008/10/special-characters-in-spring-mvc.html
您可能需要使用过滤器,因为弹簧使用ISO-8859-1而不是UTF-8