首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 互联网 >

使用resteasy的乱码有关问题

2012-09-07 
使用resteasy的乱码问题?系统统一采用utf-8编码。一般遇到乱码问题,都需要做如下1、2、3步操作:1、jsp页面设置

使用resteasy的乱码问题

?

系统统一采用utf-8编码。一般遇到乱码问题,都需要做如下1、2、3步操作:

1、jsp页面设置编码

? ??<%@ page language="java" contentType="text/html; charset=UTF-8"%>

? ? <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

2、tomcat的url编码:

? ??<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>

3、mysql的编码:

? ??<property name="url" value="jdbc:mysql://localhost:3306/xxx?characterEncoding=utf8" />

针对resteasy:

一,提交过程的乱码

? ? 建立设置一个filter, 设置提交的编码:request.setCharacterEncoding("utf-8"); (主要针对POST提交请求,GET提交走的是url)

二,返回过程中的乱码

? 方法1:在方法上加:? @Produces("text/plain; charset=utf-8")

? 方法2:采用resteasy的intercepter,建立一个?PostProcessInterceptor,在里面对编码进行统一处理:

?

?

?

针对返回过程中的乱码,在filter中设置编码不起作用,应该是resteasy根据客户端的请求编码(

Accept-Charset:GBK,utf-8;q=0.7,*;q=0.3)已经完成了GBK的编码,所以再次设置为utf-8不起作用。

?

说明:如果返回的格式是application/json,默认的编码是utf-8的,所以不会是乱码。jquery发起的请求也是utf-8的

?

热点排行