本文主要是介绍jersey 中文乱码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
今天研究了一下jersey+rest,从服务器返回字符串总是乱码,用了各种办法均不奏效。
方法1 web.xml配置:
<init-param><param-name>encoding</param-name><param-value>gbk</param-value></init-param>
方法2 修改tomcat内置编码
<Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" uRIEncoding="gbk" useBodyEncodingForURI="true" />
方法3 添加过滤器,手工编码
package sample.hello.fiter;import java.io.IOException;import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;public class EncodingFilter implements Filter {@Overridepublic void destroy() {System.out.println("destroy");}@Overridepublic void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {request.setCharacterEncoding("GBK");response.setCharacterEncoding("GBK");System.out.println("EncodingFilter----------excute!!!");chain.doFilter(request,response); }@Overridepublic void init(FilterConfig filterConfig) throws ServletException {System.out.println("init");}}
均不奏效
最后使用jersey注解 终于解决了。
@Path("{name}/{age}/{address}")@GET@Produces("text/plain;charset=gbk")public String sayHello1(@PathParam("name") String name,@PathParam("age") String age, @PathParam("address") String address) {return "Hello Jersey1 你好 :" + "name:"+name+"age:"+age+"address"+address;}
在此记录一下。
这篇关于jersey 中文乱码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!