您好我有一个带有html表单的jsp。
我设置了这样的内容类型:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1" %>
当我发送特殊字符如áéíóú时,它们会在数据库中正确保存。我的桌子字符集是utf-8。
我想将iso-8859更改为utf-8,以便标准化我的应用程序并接受更多特殊字符:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
但是当我将其更改为utf-8时,特殊字符áéíóú在数据库中无法正确保存。当我尝试保存á时,它保存为á
在服务器端,我正在使用Spring MVC。我得到的文本字段值如下:
String strField = ServletRequestUtils.getStringParameter(request,
"field");
答案 0 :(得分:4)
当您的网页不是ISO-8859-1
时,您需要在web.xml
中声明CharacterEncodingFilter
:
<filter>
<filter-name>charsetFilter</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>
</filter>
<filter-mapping>
<filter-name>charsetFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>