【问题标题】:gsp encoding no longer working in grails 4.0.11?gsp 编码不再在 grails 4.0.11 中工作?
【发布时间】:2021-08-24 17:27:51
【问题描述】:

由于将现有应用程序从 grails 4.0.3 升级到 4.0.11(未执行临时升级,因此问题可能存在于其中)我包含原始 HTML 的 gsp 现在被过度编码(意味着它们显示的文本如下<p>Hello</p>)。还有其他人有这个问题吗?是否存在遗漏文档(或我忽略)的编码更改?

我的编码设置为:

grails {
    // other stuff removed for clarity here

    converters.encoding = "UTF-8"

    views {
      "default" {
        codec = "none"
      }
      gsp {
        encoding = "UTF-8"
        htmlcodec = "xml"
        codecs {
          expression = "none"
          scriptlets = "none"
          taglib = "none"
          staticparts = "none"
        }
      }
    }
}

其他可能有帮助的信息:

  • 这仅在作为 jar 运行时发生; run-app 编码像往常一样受到尊重

【问题讨论】:

  • 能否提供示例 PoC、可公开访问的项目?
  • “这只发生在作为 jar 运行时;像往常一样尊重运行应用程序编码” - 如果您在 github.com/grails/grails-gsp/issues 提出问题并链接到示例项目,我们将很乐意解决那。感谢您的反馈!
  • “是否有编码更改遗漏了文档(或我忽略了)?” - 我认为答案是“否”,但即使有,仍然存在问题,因为 run-app 的行为与 .jar 不同。
  • 谢谢大家。我正在缩小范围,要么提出问题,要么公开承认我自己的愚蠢错误......我们很快就会看到它的发展方向!

标签: grails character-encoding grails-4


【解决方案1】:

提交 grails 错误以报告此问题;此处提供了最小的可重现示例:https://github.com/danduke/encoding-test

问题报告在这里:https://github.com/grails/grails-core/issues/12019

【讨论】:

  • 编辑:在阅读了下面链接的问题处置后,它没有得到修复,但由于 springboot 更改引起的问题,提供了一种解决方法。可能类似的 ClassLoader 解决方法?这个问题(虽然与编码无关)在 grails 4.0.4 中得到修复,并解决了 run-appwar 版本的应用程序之间的行为差​​异。也许这无意中导致了这里看到的编码问题,或者至少可以被开发人员用来追踪问题。 github.com/grails/grails-core/issues/11545
  • 我对上面链接的问题的阅读越多,我就越不相信它完全相关,留下评论以防万一。
猜你喜欢
  • 2022-09-14
  • 2021-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-29
  • 2021-07-18
相关资源
最近更新 更多