相关疑难解决方法(0)

JAX-RS编码

我正在使用JAX-RS创建一个以JSON格式返回结果的Web(休息)服务.

一切都很好,除了编码.

例如,我得到:

 ..., parameter:"Dep\u00f3sitos" ,...
Run Code Online (Sandbox Code Playgroud)

代替:

 ..., parameter:"Depósitos" ,...
Run Code Online (Sandbox Code Playgroud)

我尝试过使用:

@Produces("application/json; charset=UTF-8")
Run Code Online (Sandbox Code Playgroud)

但问题仍然存在.如果我使用以下方式将其作为XML返回:

@Produces("application/xml")
Run Code Online (Sandbox Code Playgroud)

一切都好.

我需要设置什么来生成正确的类型?

java rest encoding json jax-rs

8
推荐指数
1
解决办法
1万
查看次数

仅在Java Filter中更改ContentType或CharacterEncoding如果ContentType === JSON

我正在尝试确保来自基于Jersey的java应用程序的所有JSON响应都在其ContentType标头中附加了UTF-8字符编码参数.

所以,如果它是一个JSON响应,我想响应报头的Content-Type

Content-Type:application/json; charset = UTF-8

EDIT: I know I can do this on a case by case basis, but I'd like to do it globally, so it affects all content responses that have a content type of "application/json".

如果我只是尝试在我的过滤器中设置字符编码,无论内容类型如何,它都可以正常工作.但是我只想在ContentType为"application/json"时设置字符编码.我发现response.getContentType()方法总是返回null,除非我先调用chain.doFilter.但是如果我在此之后尝试更改字符编码,它似乎总是会被覆盖.

import java.io.IOException;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.ws.rs.core.MediaType;

public class EnsureJsonResponseIsUtf8Filter implements Filter
{
    private class SimpleWrapper extends HttpServletResponseWrapper
    {
        public SimpleWrapper(HttpServletResponse response)
        {
            super(response);
        }

        @Override
        public String getCharacterEncoding()
        {
            return "UTF-8";
        }
    }

    @Override
    public void …
Run Code Online (Sandbox Code Playgroud)

java content-type filter jersey-2.0

5
推荐指数
2
解决办法
1万
查看次数

如何在 JAX-RS 中设置响应头,以便在自定义生成的文件中正确显示中文字符

如何在 Excel 文件中正确生成支持中文字符编码的“javax.ws.rs.core.Response”(待返回)?

为了澄清,我有一个包含一些中文内容的文件(CSV excel),我需要返回一个 javax 响应,然后正确显示文档中的中文字符(在客户端)。

目前我正在做以下事情:

return Response.status( 200 )
        .header( "content-disposition", 
                 "attachment;filename=SampleCSV.csv;charset=Unicode" )
        .entity( result )
        .build();
Run Code Online (Sandbox Code Playgroud)

但是当这个响应被构建并返回到客户端时(并显示一个要求下载文件的弹出屏幕),excel文件的中文内容被狼吞虎咽。

任何建议将不胜感激。

java rest response jax-rs character-encoding

3
推荐指数
1
解决办法
7028
查看次数