40、spring ajax/easyui 中文乱码的解决

使用spingmvc,在JS里面通过ajax发送请求,并返回json格式的数据,从数据库拿出来是正确的中文格式,展示在页面上就是错误的??,研究了一下,有几种解决办法。

方法一:

在@RequestMapping里面加入produces="text/html;charset=UTF-8"

@RequestMapping(value="/json_test",produces="text/html;charset=UTF-8")

方法二:

因为在StringHttpMessageConverter里面默认设置了字符集是ISO-8859-1

所以拿到源代码,修改成UTF-8并打包到spring-web-*.jar

public class StringHttpMessageConverter extends AbstractHttpMessageConverter<String>  
{  
  public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8");  
  ..........  
}

方法三:

修改org.springframework.http.MediaType它的构造方法的参数,并在applicationContext-mvc.xml加入配置

publicMediaType(Stringtype,Stringsubtype,Charsetcharset){

super(type,subtype,charset);

}

<bean id="stringHttpMessageConverter"  
    class="org.springframework.http.converter.StringHttpMessageConverter">  
    <property name="supportedMediaTypes">  
        <list>  
            <bean class="org.springframework.http.MediaType">  
                <constructor-arg value="text" />  
                <constructor-arg value="plain" />  
                <constructor-arg value="UTF-8" />  
            </bean>  
        </list>  
    </property>  
</bean>

方法四:

直接将org.springframework.http.converter.StringHttpMessageConverter里面的属性defaultCharset设置成utf-8

<beanid="stringHttpMessageConverter"class="org.springframework.http.converter.StringHttpMessageConverter">

<propertyname="defaultCharset"value="UTF-8"/>

</bean>

相关推荐