天天看點

JAX-RS服務端接收中文亂碼

總是在追求最新、最牛的技術然而卻忘本了,在此記錄一下:

還記得在學servlet的時候,進行中文亂碼時:如果是GET送出則用byte[] nameByte = str.getBytes("ISO-8859-1"); str = new String(nameByte, "UTF-8");解決,如果是Post送出了則更容易,用request.setCharacterEncoding("UTF-8");來解決。

現在在處理JAX_RS的時候,可以在他提供的過濾器中寫入request.setCharacterEncoding("UTF-8");即可,代碼如下:

public class CharacterEncodingFilter implements ContainerRequestFilter {
	
	@Context
	HttpServletRequest request;

	@Override
	public void filter(ContainerRequestContext requestContext) throws IOException {
		request.setCharacterEncoding("UTF-8");
	}

}
           

如果你用dubbo+Rest的話,也可以用這種方式來解決。