spring版本3.1.1
问题:spring mvc reponseBody中文编码问题
[color=red]当类型设置为text/html时,编码设置无效[/color],会使用MessageConverter类默认的设置。 StringHttpMessageConverter默认设置是iso-8859-1,这个时候接收方就无法获取正确的字节码,于是就出现乱码了。 打开项目的调试模式就能看到比较详细的处理过程。
提示:下面方式对应的MediaType是text/html,而不是类中指定text/plain,所以指定编码无效,仍然会用系统默认的编码
解决办法:尽量不要用text/html格式,或者覆盖默认的消息类,重新指定其默认的编码格式
问题:spring mvc reponseBody中文编码问题
<bean id="XXXHttpMessageConverter" class="org.springframework.http.converter.XXXHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=UTF-8</value>
</list>
</property>
</bean>
[color=red]当类型设置为text/html时,编码设置无效[/color],会使用MessageConverter类默认的设置。 StringHttpMessageConverter默认设置是iso-8859-1,这个时候接收方就无法获取正确的字节码,于是就出现乱码了。 打开项目的调试模式就能看到比较详细的处理过程。
提示:下面方式对应的MediaType是text/html,而不是类中指定text/plain,所以指定编码无效,仍然会用系统默认的编码
<bean id="stringHttpMessageConverter2" class="com.XXX.MyStringHttpMessageConverter2" />
public class MyStringHttpMessageConverter2 extends StringHttpMessageConverter {
private static final MediaType utf8 = new MediaType("text", "plain",
Charset.forName("UTF-8"));
@Override
protected MediaType getDefaultContentType(String dumy) {
return utf8;
}
}
解决办法:尽量不要用text/html格式,或者覆盖默认的消息类,重新指定其默认的编码格式