我在使用Java中的SSE时出现下面这种情况:
这是因为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); } }
可以发现,前端呈现的结果已经是正常的了