Logbook 中西里尔文的日志显示不正确

问题描述

目前,Logbook 以错误的编码(ISO-8859-1 而不是 UTF-8)记录请求和响应,这就是西里尔字母显示不正确的原因。

const useStyles = makeStyles((theme) => ({
  cardMedia: {
    height: 0,paddingTop: '100%','&:hover': {
      cursor: 'pointer',},card: {
    maxWidth: 345,borderRadius: 30,}));

const PhotoCard = ({ photo }) => {
  const classes = useStyles();
  return (
    <Card className={classes.card}>
      <CardMedia
        className={classes.cardMedia}
        image={photo.image}
        title="Paella dish"
      />
    </Card>
  );
};

目前(库版本 2.3.0),日志文本在 org.zalando.logbook.DefaultHttpLogFormatter#format(org.zalando.logbook.Correlation,org.zalando.logbook.HttpResponse) 中生成,其中 org 最终被称为.zalando。日志.servlet。 LocalResponse#getCharset,返回 ISO-8859-1 编码而不是 UTF_8。

如何更改编码?我该如何配置?

解决方法

我正在使用 spring boot,我遇到了同样的问题,application.yml 中的这些行帮助了我:

  1. 对于低于 2.3.0 的 spring boot 版本 spring.http.encoding.charset = UTF-8 和 spring.http.encoding.force-response = true
  2. 对于高于 2.3.0 的 spring boot 版本 server.servlet.encoding.charset = UTF-8 和 server.servlet.encoding.charset.force-response = true