关于Spring MVC中文乱码问题的解决方法
第一步:
jsp页面编码设置为UTF-8,form表单提交方式为必须为post,get方式提交下面spring编码过滤器不起效果
第二步:
修改web.xml配置文件,增加编码过滤器filter,如下(注意,需要设置forceEncoding参数值为true)
代码如下:
<filter>
<filter-name>characterEncodingFilter</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>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
如果是写入数据库出现乱码,可以在配置连接数据库的参数设置修改:
需要注意的是:
1、数据库编码是否支持中文 2、数据库表和表字段是否正确
代码如下:
<property name="url" value="jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=UTF-8"></property>
当某种情况可能还是无法解决这时候,可以尝试使用以下代码:
request.setCharacterEncoding("UTF-8");
response.setContentType("application/json;charset=UTF-8");//防止数据传递乱码
String str=newString((request.getParameter("bigQuestionTypeName")).getBytes("iso-8859-1"),"utf-8")