解决Java使用SSE乱码问题

我在使用Java中的SSE时出现下面这种情况:

解决Java使用SSE乱码问题_第1张图片

这是因为SSE返回给前端的默认编码格式为ISO_8859_1

为了避免此类问题的出现,可以修改SSE的默认编码格式为UTF-8

@Slf4j
public class SseEmitterUTF8 extends SseEmitter {
    @Override
    protected void extendResponse(ServerHttpResponse outputMessage) {
        super.extendResponse(outputMessage);
        HttpHeaders headers = outputMessage.getHeaders();
        headers.setContentType( new MediaType("text", "event-stream", StandardCharsets.UTF_8));
    }
​
    public SseEmitterUTF8(Long timeout) {
        super(timeout);
    }
}

可以发现,前端呈现的结果已经是正常的了

解决Java使用SSE乱码问题_第2张图片

你可能感兴趣的:(java,开发语言)